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

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

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

يمكن للبرامج نفسها أن تسبب مقاطعات برقم معين. للقيام بذلك يستخدمون الأمر INT. هذه هي ما يسمى المقاطعات البرمجيات. مقاطعات البرامج ليست غير متزامنة، حيث يتم استدعاؤها من البرنامج (وهو يعرف متى يستدعي المقاطعة!).

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

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

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

لاحظ أيضًا أن معالجات المقاطعة يمكنها بنفسها استدعاء مقاطعات البرامج، على سبيل المثال، للوصول إلى خدمة BIOS أو DOS (تتوفر خدمة BIOS أيضًا من خلال آلية مقاطعة البرنامج).

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

لربط عنوان معالج المقاطعة برقم المقاطعة، استخدم مقاطعة جدول المتجهات، تشغل الكيلوبايت الأول من ذاكرة الوصول العشوائي - العناوين من 0000:0000 إلى 0000:03FF. يتكون الجدول من 256 عنصرًا - عناوين FAR لمعالجات المقاطعة. تسمى هذه العناصر ناقلات المقاطعة. تحتوي الكلمة الأولى من عنصر الجدول على الإزاحة، بينما تحتوي الكلمة الثانية على عنوان مقطع معالج المقاطعة.

رقم المقاطعة 0 يتوافق مع العنوان 0000:0000، والمقاطعة رقم 1 يتوافق مع العنوان 0000:0004، وما إلى ذلك.

تتم تهيئة الجدول جزئيًا بواسطة BIOS بعد اختبار الأجهزة وقبل بدء تحميل نظام التشغيل، وجزئيًا عند تحميل DOS. يمكن أن يتولى DOS بعض مقاطعات BIOS.

دعونا نلقي نظرة على محتويات جدول متجه المقاطعة. هنا هو الغرض من بعض أهم المتجهات:

وصف

خطأ في القسمة يتم استدعاؤه تلقائيًا بعد تنفيذ أمر DIV أو IDIV إذا أدى القسم إلى تجاوز السعة (على سبيل المثال، القسمة على 0). يقوم DOS عادةً بطباعة رسالة خطأ عند التعامل مع هذه المقاطعة ويوقف تنفيذ البرنامج. بالنسبة للمعالج 8086، يشير عنوان الإرجاع إلى التعليمات التالية بعد تعليمات القسمة، وفي المعالج 80286 - إلى البايت الأول من التعليمات التي تسببت في المقاطعة.

وضع خطوة المقاطعة. يتم إنتاجه بعد تنفيذ كل تعليمات الآلة، إذا تم تعيين بت التتبع خطوة بخطوة TF في كلمة الأعلام. تستخدم لبرامج التصحيح. لا يتم إنشاء هذه المقاطعة بعد تنفيذ تعليمات MOV لسجلات المقاطع أو بعد تحميل تسجيلات المقاطع بتعليمات POP.

مقاطعة الأجهزة غير القابلة للإخفاء. يمكن استخدام هذه المقاطعة بشكل مختلف على أجهزة مختلفة. يتم إنشاؤه عادةً عند وجود خطأ تماثل في ذاكرة الوصول العشوائي (RAM) وعند طلب المقاطعة من المعالج الثانوي.

مقاطعة للتتبع. يتم إنشاء هذه المقاطعة عن طريق تنفيذ تعليمات آلة ذات بايت واحد مع الكود CCh ويتم استخدامها بشكل شائع بواسطة مصححي الأخطاء لتعيين نقطة توقف.

تجاوز. يتم إنشاؤه بواسطة تعليمات الجهاز INTO إذا تم تعيين علامة OF. إذا لم يتم تعيين العلامة، فسيتم تنفيذ تعليمات INTO كـ NOP. يتم استخدام هذه المقاطعة لمعالجة الأخطاء عند إجراء العمليات الحسابية.

طباعة نسخة الشاشة. تم إنشاؤه بالضغط على مفتاح PrtScr على لوحة المفاتيح. يُستخدم عادةً لطباعة صورة على الشاشة. بالنسبة للمعالج 80286، الذي يتم إنشاؤه عند تنفيذ تعليمات جهاز BOUND إذا كانت القيمة التي يتم اختبارها خارج النطاق المحدد.

كود التشغيل أو طول التعليمات غير المحدد أكبر من 10 بايت (للمعالج 80286).

حالة خاصة لعدم وجود معالج رياضي مساعد (80286 معالج).

IRQ0 - مقاطعة مؤقت الفاصل الزمني، تحدث 18.2 مرة في الثانية.

IRQ1 - مقاطعة لوحة المفاتيح. يتم إنشاؤها عند الضغط على المفتاح أو تحريره. يستخدم لقراءة البيانات من لوحة المفاتيح.

IRQ2 - يستخدم لمقاطعات الأجهزة المتتالية في أجهزة فئة AT.

IRQ3 - انقطاع المنفذ غير المتزامن COM2.

IRQ4 - انقطاع المنفذ غير المتزامن COM1.

IRQ5 - مقاطعة من وحدة تحكم القرص الصلب لـ XT.

IRQ6 - يتم إنشاء المقاطعة بواسطة وحدة تحكم القرص المرن بعد اكتمال العملية.

IRQ7 - مقاطعة الطابعة. يتم إنشاؤها بواسطة الطابعة عندما تكون جاهزة لإجراء عملية أخرى. لا تستخدم العديد من محولات الطابعة هذه المقاطعة.

صيانة محول الفيديو.

تحديد تكوين الأجهزة في النظام.

تحديد حجم ذاكرة الوصول العشوائي (RAM) في النظام.

صيانة نظام القرص.

الإدخال/الإخراج التسلسلي.

خدمة متقدمة لأجهزة الكمبيوتر AT.

صيانة لوحة المفاتيح.

صيانة الطابعة.

قم بتشغيل BASIC في ROM، إذا كان ذلك متاحًا.

خدمة المشاهدة.

معالج المقاطعة Ctrl-Break.

تحدث المقاطعة 18.2 مرة في الثانية ويتم استدعاؤها برمجيًا بواسطة معالج مقاطعة المؤقت.

عنوان جدول الفيديو لوحدة تحكم محول الفيديو 6845.

مؤشر إلى جدول معلمات القرص المرن.

مؤشر إلى جدول رسومات للأحرف ذات رموز ASCII 128-255.

يستخدم بواسطة DOS أو محجوز لـ DOS.

المقاطعات محفوظة للمستخدم.

غير مستعمل.

IRQ8 - مقاطعة الساعة في الوقت الحقيقي.

IRQ9 - المقاطعة من وحدة تحكم EGA.

IRQ10 - محجوز.

IRQ11 - محجوز.

IRQ12 - محجوز.

IRQ13 - المقاطعة من المعالج الرياضي.

IRQ14 - المقاطعة من وحدة تحكم القرص الثابت.

IRQ15 - محجوز.

غير مستعمل.

محفوظة للأساسية.

يستخدم من قبل مترجم BASIC.

محاضرة رقم 12

نظام المقاطعة للمعالجات الدقيقة 32 بت أنا80 س86.

تشغيل نظام المقاطعة في الوضع الحقيقي

أسئلة

1. مفهوم المقاطعة

2. تصنيف المقاطعة

3. نظام المقاطعة.

· المعدات

· برنامج نظام المقاطعة

· مقاطعة جدول المتجهات

4. معالجة المقاطعة في الوضع الحقيقي

الانقطاع يعني إيقاف عملية الحوسبة الرئيسية مؤقتًا لتنفيذ بعض الإجراءات المخططة أو غير المخططة الناتجة عن تشغيل الأجهزة أو البرامج.

أولئك. هذه عملية تقوم بتحويل المعالج الدقيق مؤقتًا لتنفيذ برنامج آخر ثم العودة إلى البرنامج الذي تمت مقاطعته.

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

يتم حساب عنوان برنامج معالج المقاطعة من جدول متجهات المقاطعة.

يتم دعم آلية المقاطعة على مستوى الأجهزة.

تصنيف المقاطعة

اعتمادا على المصدر، يتم تقسيم المقاطعات إلى

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

· برمجة- يتم استدعاؤها بشكل مصطنع باستخدام الأمر المناسب من البرنامج (كثافة العمليات )، مصممة لتنفيذ بعض إجراءات نظام التشغيل، وهي متزامنة؛

· استثناءات- هي رد فعل المعالج الدقيق على موقف غير قياسي نشأ داخل المعالج الدقيق أثناء تنفيذ بعض أوامر البرنامج (القسمة على الصفر، والمقاطعة بالعلم TF (تتبع)).

التصنيف العام للمقاطعات

· خارجي- ناجمة عن أحداث خارجية للمعالج الدقيق

(في الأساس مجموعة من مقاطعات الأجهزة) لا توجد مقاطعات متداخلة!

· داخلي- تنشأ داخل المعالج الدقيق أثناء عملية الحوسبة (وهي في الأساس حالات استثناء ومقاطعات البرامج).

المقاطعات الخارجية تنشأ من إشارة من بعض الأجهزة الخارجية.

وتنقسم المقاطعات الخارجية إلى غير مقنعة ومموهة.

نظرا لوجود إشارتين خارجيتين خاصتين بين إشارات الإدخال الخاصة بالمعالج، والتي يمكنك من خلالها مقاطعة تنفيذ البرنامج الحالي وبالتالي تبديل تشغيل المعالج المركزي. هذه هي الإشارات NMI (لا توجد مقاطعة للقناع، مقاطعة غير قابلة للإخفاء) و INTR (طلب المقاطعة، طلب المقاطعة).

المقاطعات القابلة للإخفاء يتم إنشاؤها بواسطة وحدة تحكم المقاطعة بناءً على طلب بعض الأجهزة الطرفية. جهاز التحكم بالمقاطعة (مصنوع على شكل شريحة خاصة i8259A) يدعم ثمانية مستويات الأولوية (الخطوط)؛ يتم "ربط" جهاز طرفي واحد بكل مستوى. غالبًا ما تسمى المقاطعات القابلة للإخفاء بمقاطعات الأجهزة..

في أجهزة الكمبيوتر الشخصية، بدءًا من IBM PC AT، مبني على المعالج الدقيق i80286، ويتم استخدام وحدتي تحكم المقاطعة i8259A؛ وهي متصلة في سلسلة بطريقة متتالية، مما يزيد من عدد مصادر المقاطعة الخارجية إلى 15 (كل 8).

يرجى الملاحظة . رقاقة ط 8259A قابل للبرمجة.

المقاطعات غير القابلة للإخفاء (يقولون أنه واحد لأنه يتم توفيره لمخرج المعالج الدقيقنمي ) بدء المصادر التي تتطلب التدخل الفوري من المعالج الدقيق.

!

في الأوضاع الحقيقية والمحمية لتشغيل المعالجات الدقيقة، تتم معالجة المقاطعة باستخدام طرق مختلفة بشكل أساسي.

نظام المقاطعة. مقاطعة أجهزة وبرامج النظام

نظام المقاطعة عبارة عن مجموعة من البرامج والأجهزة التي تنفذ آلية المقاطعة.

ل المعداتأنظمة المقاطعة تشمل:

· دبابيس المعالجات الدقيقة- يتم إنشاء إشارات عليها لإعلام المعالج الدقيق إما أن بعض الأجهزة الخارجية "سوف تنتبه إليه" (إنتر) إما أن بعض الأحداث تحتاج إلى معالجة فورية أو خطأ فادح(نمي)

إنتر - الإخراج ل مدخلإشارة طلب المقاطعة,

نمي - الإخراج ل مدخلإشارة مقاطعة غير قابلة للإخفاء

إنتا - الإخراج ل يوم عطلةإشارة تأكيد لتلقي إشارة المقاطعة بواسطة المعالج الدقيق (يتم إرسال هذه الإشارة إلى نفس مدخل شريحة التحكم 8259A؛

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

· الأجهزة الخارجية (المؤقت، لوحة المفاتيح، الأقراص المغناطيسية، الخ)

ل برمجةأنظمة المقاطعة الوضع الحقيقي يشمل:

· مقاطعة جدول المتجهات .

يشغل الكيلوبايت الأول من OP (العناوين 00000ح-003FFh).

أنه يحتوي على عناوين (المتجهات - "المتجهات"، لأن اثنينقيم لتحديد العنوان) لمعالجات المقاطعة وتتكون من 256 (0..255) عنصرًا كل منها 4 بايت:

2 بايت - قيمة جديدة للتسجيلالملكية الفكرية

2 بايت - قيمة جديدة للتسجيل CS.

موقع جدول متجه المقاطعة في المعالجات i80286 ويتم تحديد الأقدم من خلال قيمة التسجيل IDTR.

تتم تهيئة جدول متجه المقاطعة عند بدء تشغيل النظام، ولكن من حيث المبدأ يمكن تغييره ونقله.

كل متجه له رقمه الخاص ويسمى رقم المقاطعة.

· علمانفي سجل العلم الأعلام / الأعلام:

IF (علامة المقاطعة) - علامة المقاطعة. مصمم لإخفاء (تعطيل) مقاطعات الأجهزة. لوإذا = 1 يعالج المعالج الدقيق المقاطعات الخارجية، إذا كانت = 0، ثم يتجاهلها؛

TF (علامة التتبع) - علامة التتبع. إذا كانت = 1، فإن المعالج الدقيق يتحول إلى وضع التعليمات حسب الأمر. في هذا الوضع، يتم إنشاء مقاطعة داخلية بالرقم 1 في المعالج الدقيق؛

· تعليمات آلة المعالجات الدقيقة: كثافة العمليات، في(مقاطعة الفائض)، إيريت، كلي، ستي

معالجة المقاطعة في الوضع الحقيقي

يتم تنفيذها على ثلاث مراحل:

1) إنهاء البرنامج الحالي؛

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

السجلات مطلوبة ليتم حفظها CS، الملكية الفكرية، الأعلام (CS: زوج IP يحتوي على عنوان الأمر الذي سيتم به بدء التنفيذ بعد العودة،أعلام - حالة الأعلام بعد تنفيذ التعليمات الأخيرة للبرنامج الذي تمت مقاطعته).

!!! يتم حفظ هذه السجلات تلقائيًا بواسطة المعالج الدقيق. ويجب ضمان الحفاظ على السجلات الأخرى من قبل المبرمج !!!

المكان الأكثر ملاءمة لتخزين السجلات هو المكدس.

بعد تخزين السجلات على المكدس، يقوم المعالج الدقيق بإعادة تعيين بت العلملو (أي=0)(!!! في هذه الحالة، يتم كتابة السجل على المكدسأعلام مع لا يزال مثبتالو !!!) هذا يمنع احتمال حدوث مقاطعات خارجية متداخلة وتلف سجلات البرنامج المصدر بسبب الإجراءات غير المنضبطة من جانب البرنامج - معالج المقاطعة المتداخلة. بعد اكتمال إجراءات حفظ السياق الضرورية، يمكن لمعالج مقاطعة الأجهزة تمكين المقاطعات المتداخلة باستخدام الأمر sti.

2) الانتقال إلى تنفيذ وتنفيذ برنامج خدمة المقاطعة؛

هنا يتم تحديد مصدر المقاطعة ويتم استدعاء معالج المقاطعة المقابل.

في الوضع الحقيقي للمعالج الدقيق، يُسمح بـ 256 مصدرًا - وفقًا لعدد عناصر جدول متجه المقاطعة.

هيكل العنصر:

· 2 بايت - قيمة إزاحة بداية برنامج معالج المقاطعة من بداية مقطع التعليمات البرمجية

· 2 بايت - قيمة العنوان الأساسي للمقطع الذي يوجد به برنامج المعالج.

كيفية تحديد العنوان الذي يوجد به رقم متجه المقاطعةن؟

إزاحة جدول متجه المقاطعة =ن*4

حجم الجدول الكامل؟ 4*256=1024

حتى في المرحلة الثانية المعالجات الدقيقة

1. بواسطة رقم مصدر المقاطعة، يتم تحديد الإزاحة في جدول متجهات المقاطعة

2. يضع أول بايتتين في السجلالملكية الفكرية

3. يضع البايتتين الثانيتين في السجلسي إس.

4. ينقل السيطرة إلى العنوان CS:IP

(يمكن أيضًا مقاطعتها بطلب من مصدر ذي أولوية أعلى. جميع مصادر المقاطعة لها أولويات.)

3) إعادة التحكم إلى البرنامج الذي تمت مقاطعته.

من الضروري إعادة المكدس إلى الحالة التي كان عليها مباشرة بعد نقل التحكم إلى هذا الإجراء. للقيام بذلك، يجب على المبرمج تحديد الإجراءات اللازمة لاستعادة السجلات ومسح المكدس. !! يجب حماية هذا القسم من التلف المحتمل لمحتويات التسجيل (نتيجة انقطاع الأجهزة) باستخدام الأمر cli.

الأوامر الأخيرة في معالج المقاطعة هيستي، غضب

sti - تمكين مقاطعات الأجهزة (يحدد العلمإذا = 1 ، ليس له معاملات).

غاضب - إزالة ثلاث كلمات بالتتابع من المكدس ووضعها في السجلات وفقًا لذلكالملكية الفكرية، خدمات العملاء، الأعلام.

ناقلات المقاطعة

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

مقاطعة جدول المتجهات

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

تنظيم المقاطعات المتداخلة

من الممكن أنه في لحظة معالجة المقاطعة الأولى، يصل طلب مقاطعة أخرى.

إذا كان هناك مصادر متعددة لطلبات المقاطعة، فيجب إنشاء ترتيب معين في خدمة الطلبات الواردة.

أنشأ النظام علاقات الأولوية بين طلبات المقاطعة.

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

على سبيل المثال، يكون لطلب المقاطعة من جهاز ضبط الوقت دائمًا الأولوية على الطلب من أي جهاز خارجي، وتكون برامج المستخدم لها الأولوية الأدنى ويمكن مقاطعتها بأي شيء.

هناك مفهوم عمق المقاطعة - وهذا هو الحد الأقصى لعدد البرامج التي يمكنها مقاطعة بعضها البعض. إذا كان قبول طلبات أخرى محظورًا بعد الانتقال إلى برنامج المقاطعة وحتى نهايته، فيقال إن النظام لديه عمق مقاطعة قدره 1. ويكون العمق مساويًا لـ n إذا سمح بالمقاطعة المتتابعة لما يصل إلى n من البرامج. توفر الأنظمة ذات عمق المقاطعة الأكبر استجابة أسرع للطلبات العاجلة.

يتم التمييز بين استخدام الأولويات المطلقة والنسبية.

نظام الأولوية المطلقة:

يؤدي الطلب الوارد ذو الأولوية الأعلى من الطلب الذي تتم معالجته حاليًا إلى مقاطعة البرنامج قيد التشغيل.

نظام الأولوية النسبية:

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

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

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

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

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

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

أي في تبديل مثل:

1 2 3 4 5 6 7 التبديل (x) ( 1 : الإجراء 1 2 : الإجراء 2 3 : الإجراء 3 4 : الإجراء 4 )

التبديل(x) ( 1: الإجراء 1 2: الإجراء 2 3: الإجراء 3 4: الإجراء 4 )

ستكون هناك مقارنة تسلسلية لـ x أولاً مع 1، ثم مع 2، ثم مع 3، وهكذا حتى يتم تعداد جميع الخيارات. وفي هذه الحالة، سيكون رد الفعل على الإجراء 1 أسرع من رد الفعل على الإجراء 4. وهذا مهم بشكل خاص عند حساب الفواصل الزمنية الدقيقة على جهاز ضبط الوقت.

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

نقوم بإنشاء متغيرات في الذاكرة لمتجه عائم:

Timer0_Vect_L: .بايت 1؛ وحدتا بايت عنوان، Timer0_Vect_H العالية والمنخفضة: .byte 1

الاستعداد لانتظار المقاطعة أمر بسيط، فنحن نأخذها ونحملها في المتغير الخاص بنا بالعنوان المطلوب

سطر الأوامر؛ الجزء الحاسم. يقاطع LDI R16، منخفض (Timer_01) ؛ خذ العنوان واحفظ STS Timer0_Vect_L,R16 ; إلى خلية الذاكرة. LDI R16، عالي (Timer_01)؛ وبالمثل، ولكن مع أعلى ناقل STS Timer0_Vect_H,R16 SEI ؛ يقاطع على

هذا كل شيء، يمكنك تشغيل الموقت وانتظار انقطاعنا. إنه مشابه لحالات أخرى.

والمعالج يبدو كالتالي:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 ;========================================================================================================== إدخال مقاطعة تجاوز السعة من Timer0 ;=================== TIMER_0: PUSH ZL ; احفظ سجل الفهرس في المكدس PUSH ZH ؛ لأن نستخدمه PUSH R2؛ نحفظ R2، لأن نحن نفسدها أيضًا في R2,SREG ؛ استرداد وحفظ تسجيل العلم PUSH R2؛ إذا لم تقم بذلك، فسنحصل على مواطن الخلل بنسبة 100٪ LDS ZL,Timer0_Vect_L ; تحميل عنوان ناقل LDS الجديد ZH,Timer0_Vect_H ; كلا البايتات. سي إل آر آر 2؛ مسح R2 أو R2، ZL؛ نتحقق من المتجه للصفر. بخلاف ذلك، فإننا نلتقط التناظرية لـ OR R2,ZH ؛ "أ. يتم إجراء الفحص من خلال العملية OR BREQ Exit_Tm0؛ مع تراكم النتيجة في R2؛ وبهذه الطريقة لا نفسد محتويات Z ولا يتعين علينا ذلك؛ قم بتحميله مرة أخرى IJMP؛ نحن اترك على طول متجه جديد؛ اخرج من المقاطعة Exit_Tm0: POP R2؛ نخرجه ونستعيد تسجيل العلم OUT SREG,R2 POP R2؛ استعادة R2 POP ZH؛ استعادة Z POP ZL RETI؛ المتجه الإضافي 1 Timer_01: NOP؛ هذه هي ناقلاتنا الجديدة NOP ؛ هنا يمكننا أن نفعل ما نريد NOP ؛ ويفضل ألا يكون ذلك لفترة طويلة - في المقاطعة NOP ؛ بعد كل شيء. إذا استخدمنا أي سجلات NOP ؛ أخرى، فإننا نحفظها أيضًا على المكدس RJMP Exit_Tm0 ؛ هذا هو انتقال إلى إخراج المقاطعة؛ تم إجراؤه خصيصًا من خلال RJMP من أجل؛ ناقل إضافي 2؛ حفظ عشرات البايتات على رمز الإرجاع :))) Timer_02: NOP NOP NOP NOP RJMP Exit_Tm0؛ ناقل إضافي 3 Timer_03: NOP NOP NOP NOP NOP RJMP Exit_Tm0

;========================================================================================================== إدخال مقاطعة تجاوز السعة من Timer0 ;=================== TIMER_0: PUSH ZL ; احفظ سجل الفهرس في المكدس PUSH ZH ؛ لأن نستخدمه PUSH R2؛ نحفظ R2، لأن نحن نفسدها أيضًا في R2,SREG ؛ استرداد وحفظ تسجيل العلم PUSH R2؛ إذا لم تقم بذلك، فسنحصل على مواطن الخلل بنسبة 100٪ LDS ZL,Timer0_Vect_L ; تحميل عنوان ناقل LDS الجديد ZH,Timer0_Vect_H ; كلا البايتات. سي إل آر آر 2؛ مسح R2 أو R2، ZL؛ نتحقق من المتجه للصفر. بخلاف ذلك، فإننا نلتقط التناظرية لـ OR R2,ZH ؛ "أ. يتم إجراء الفحص من خلال العملية OR BREQ Exit_Tm0؛ مع تراكم النتيجة في R2؛ وبهذه الطريقة لا نفسد محتويات Z ولا يتعين علينا ذلك؛ قم بتحميله مرة أخرى IJMP؛ نحن اترك على طول متجه جديد؛ اخرج من المقاطعة Exit_Tm0: POP R2؛ نخرجه ونستعيد تسجيل العلم OUT SREG,R2 POP R2؛ استعادة R2 POP ZH؛ استعادة Z POP ZL RETI؛ المتجه الإضافي 1 Timer_01: NOP؛ هذه هي ناقلاتنا الجديدة NOP ؛ هنا يمكننا أن نفعل ما نريد NOP ؛ ويفضل ألا يكون ذلك لفترة طويلة - في المقاطعة NOP ؛ بعد كل شيء. إذا استخدمنا أي سجلات NOP ؛ أخرى، فإننا نحفظها أيضًا على المكدس RJMP Exit_Tm0 ؛ هذا هو انتقال إلى إخراج المقاطعة؛ تم إجراؤه خصيصًا من خلال RJMP من أجل؛ ناقل إضافي 2؛ حفظ عشرات البايتات على رمز الإرجاع :))) Timer_02: NOP NOP NOP NOP RJMP Exit_Tm0؛ ناقل إضافي 3 Timer_03: NOP NOP NOP NOP NOP RJMP Exit_Tm0

التنفيذ لـ RTOS
ولكن ماذا يجب أن نفعل إذا تم بناء برنامجنا بطريقة تدور فيها جميع التعليمات البرمجية على طول سلاسل المهام من خلال مدير RTOS؟ من الصعب جدًا أن تحسب في ذهنك كيفية تنفيذ هذه السلاسل بالنسبة لبعضها البعض. ويمكن لكل واحد منهم محاولة الاستيلاء على المؤقت (بالطبع، ليس بدون إذن، بناءً على اقتراحنا، نكتب برنامجًا، ولكن سيكون من الصعب تتبع كل شيء في الوقت المناسب).
في المحاور الكبيرة الحديثة، توجد آلية استبعاد متبادل لهذه الحالة - كائن المزامنة (mutex). أولئك. إنه نوع من العلم المزدحم. إذا تواصلت بعض العمليات، على سبيل المثال، مع UART، فلن تجرؤ عملية أخرى على وضع بايت هناك وتنتظر بطاعة حتى تحرر العملية الأولى UART، والتي تشير إليها العلامة.

لا توجد آليات استبعاد متبادل في بلدي، ولكن يمكن تنفيذها. على الأقل قم ببعض التشابه البسيط. لا أريد أن أقوم بالتنفيذ الكامل لكل هذه الأشياء غير المرغوب فيها، لأن... هدفي هو الحفاظ على حجم النواة عند 500-800 بايت.
أسهل طريقة هي حجز بايت آخر في الذاكرة - المتغير المشغول. وعندما تستولي إحدى العمليات على مورد ما، فإنها تسجل في هذا المتغير الوقت الذي ستحرره فيه تقريبًا. يمر الوقت في علامات مؤقت النظام، وهو بالنسبة لي 1 مللي ثانية.
إذا حاولت أي عملية أخرى الوصول إلى نفس مورد الجهاز، فسوف تنظر أولاً إلى حالة الانشغال الخاصة به، وتحسب الوقت الذي ستكون فيه مشغولة وتتوقف عن العمل خلال هذه الفترة - وسوف تقوم بتحميل نفسها في قائمة انتظار مؤقت. هناك سوف يتحقق مرة أخرى وما إلى ذلك. هذا هو الخيار الأبسط.

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

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

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

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

  • 5. تنظيم نظام المعالجات الدقيقة (MPS): المبدأ المعياري الرئيسي لتنظيم MPS، والفئات الرئيسية لوسائل المعالجات الدقيقة. نظام المعالجات الدقيقة (MPS)
  • 6. الهياكل النموذجية للسكك الحديدية الحضرية: الخط الرئيسي، الشلال الرئيسي، الشعاعي الرئيسي.
  • 7. تنظيم الناقلات لأنظمة المعالجات الدقيقة: بحافلة واحدة، بنوعين من الحافلات، بثلاثة أنواع من الحافلات.
  • 8. خصائص المعالجات الدقيقة.
  • 9. تنظيم العمود الفقري لنظام المعالجات الدقيقة. حافلة ذات ثلاث حافلات مع عنوان منفصل وحافلات نقل البيانات.
  • 10. دورات الوصول إلى الطريق السريع.
  • 11. تنظيم الوصول إلى الطريق السريع مع الوصول المتزامن.
  • 12. تنظيم الوصول إلى الطريق السريع مع الوصول غير المتزامن.
  • 13. الجمع بين ناقل العنوان وناقل البيانات. حافلة ذات حافلتين مع حافلات عنوان/بيانات مدمجة.
  • 14. آلية نقل حزم البيانات عبر ناقل النظام.
  • 15. هندسة نظام الذاكرة الفرعي لنظام المعالجات الدقيقة. خصائص نظام الذاكرة الفرعي لنظام المعالجات الدقيقة
  • 16. ذاكرة العناوين (أجهزة تخزين الوصول العشوائي).
  • 17. الذاكرة الترابطية.
  • 18. كومة الذاكرة.
  • 19. الذاكرة الرئيسية: مخططات الكتلة والدورية والكتل الدورية لتنظيم الذاكرة الرئيسية.
  • 20. ذاكرة التخزين المؤقت. مبادئ تخزين الذاكرة.
  • 21. طرق تعيين الذاكرة الرئيسية إلى الذاكرة المؤقتة. بنيات ذاكرة التخزين المؤقت.
  • 22.خوارزميات لاستبدال المعلومات في ذاكرة التخزين المؤقت الكاملة.
  • 23. خوارزميات التوفيق بين محتويات الذاكرة المؤقتة والذاكرة الرئيسية.
  • 24. مفهوم الذاكرة الافتراضية.
  • 25. تنظيم الترحيل للذاكرة الافتراضية.
  • 26. قطاع تنظيم الذاكرة الافتراضية. تنظيم مشترك لصفحة المقطع للذاكرة الافتراضية.
  • 27.هندسة النظام الفرعي للإدخال/الإخراج لنظام المعالجات الدقيقة.
  • 28. تنظيم الانقطاعات في نظام المعالجات الدقيقة.
  • 29.نظام المقاطعة الشعاعية.
  • 30. نظام مقاطعة المتجهات.
  • 31. تنظيم الوصول المباشر للذاكرة في نظام المعالجات الدقيقة.
  • 32. معمارية بطاريات المعالجات الدقيقة.
  • 33. تسجيل بنية المعالجات الدقيقة .
  • 34. بنية المعالجات الدقيقة ذات الوصول المخصص للذاكرة.
  • 35. بنية المكدس للمعالجات الدقيقة.
  • 36. تصنيف أوامر المعالجات الدقيقة.
  • 37. هيكل (تنسيقات) أوامر المعالجات الدقيقة.
  • 38. تسجيل هياكل المعالجات الدقيقة
  • 39. معالجة البيانات في المعالجات الدقيقة: عرض معلومات العنوان، طرق المعالجة.
  • 40. إدارة الذاكرة في المعالجات الدقيقة: العنونة الخطية والمقطعة، تحويل العناوين المنطقية إلى عناوين فعلية، إدارة الذاكرة الافتراضية.
  • 41. حماية الذاكرة في المعالجات الدقيقة: آليات الحماية، مفهوم الامتيازات.
  • 42. دعم نظام التشغيل في المعالجات الدقيقة.
  • 43. الانقطاعات الخاصة (حالات خاصة، استثناءات) في المعالجات الدقيقة.
  • 44. وضع التشغيل المتعدد البرامج للمعالجات الدقيقة.
  • 45. التنظيم الهيكلي لوحدات التحكم الدقيقة أحادية الشريحة (باستخدام مثال وحدات التحكم الدقيقة 8 بت): مبدأ التصميم المعياري، وأنواع نوى المعالج.
  • 46. ​​الذاكرة المقيمة (الداخلية) للمتحكمات الدقيقة.
  • 47. الأجهزة الطرفية لوحدات التحكم الدقيقة: منافذ الإدخال/الإخراج المتوازية، وأجهزة ضبط الوقت ومعالجات الأحداث، وواجهات الإدخال/الإخراج التسلسلية.
  • 48. أساسيات تنظيم واجهات أنظمة المعالجات الدقيقة.
  • 49. تصنيف الواجهات.
  • 50.تنظيم نقل البيانات الموازية.
  • 51.تنظيم نقل البيانات التسلسلية.
  • 52. أساسيات تصميم أنظمة المعالجات الدقيقة: دورة تصميم MPS، تطوير MPS وأدوات تصحيح الأخطاء.
  • 30. نظام مقاطعة المتجهات.

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

    يمكن أن يكون متجه المقاطعة:

    أمر استدعاء الروتين الفرعي الكامل مع عنوان الروتين الفرعي لخدمة المقاطعة؛

    عنوان روتين خدمة المقاطعة؛

    يشير إلى عنوان روتين خدمة المقاطعة. يمكن استخدام المؤشر إما العنوان الذي يتم تخزين عنوان روتين خدمة المقاطعة عليه في الذاكرة (أحيانًا يسمى هذا المؤشر عنوان متجه المقاطعة)، أو نوع المقاطعة.

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

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

    الشكل 40 - تشكيل متجه المقاطعة عن طريق لوحة التحكم

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

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

    الشكل 41 - نظام المقاطعة المتجه بناءً على وحدة التحكم في المقاطعة

    مراقب يقاطع يمكن اعتبار (CPR) امتدادًا للمعالج، ولهذا السبب يطلق عليه أحيانًا اسم المعالج المساعد للمقاطعة. استنادا إلى CPR، يتم تشكيل نظام مقاطعة ناقلات الأولوية متعدد المستويات. تضمن CRC استقبال ومعالجة طلبات المقاطعة N. يختار منطق أولوية KPR الطلب ذو الأولوية العليا من بين طلبات المقاطعة الواردة ويقارنه بالأولوية الحالية للطلب الذي تتم خدمته. عند تجاوز الأولوية الحالية، يقوم CPR بإنشاء إشارة طلب مقاطعة INT، والتي يتم إرسالها إلى المعالج. يؤكد MP استلام طلب INT عن طريق إنشاء إشارة تأكيد المقاطعة INTA، استجابةً لذلك يصدر CPR ناقل المقاطعة المقابل إلى ناقل بيانات ناقل النظام. طالما أن الطلب موجود في الخدمة، فسيتم تجاهل كافة الطلبات ذات الأولوية المتساوية أو الأقل. وفي الوقت نفسه، تؤدي الطلبات ذات الأولوية الأعلى إلى إنشاء إشارة INT، مما يؤدي إلى تشغيل المقاطعات المتداخلة. للتحكم بسرعة في تشغيل وحدة التحكم، من الممكن برمجتها، مما يسمح لك بتغيير أولويات الطلبات ديناميكيًا، ومتجهات المقاطعة التي تم إنشاؤها، وما إلى ذلك.

    "