كيف يتم التعامل مع المقاطعات بواسطة آلات المعالج المزدوج؟

StackOverflow https://stackoverflow.com/questions/599238

سؤال

لدي فكرة عن كيفية التعامل مع المقاطعات بواسطة وحدة المعالجة المركزية ثنائية النواة. كنت أتساءل عن كيفية تنفيذ المناولة المقاطعة على متن طائرة تتمتع بأكثر من معالج مادي واحد.

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

إذا كان جوهر ينتظر قراءة القرص، فهل سيكون هذا الأساس هو الذي يقوم بتشغيل معالج المقاطعة عند الاستعداد للقرص؟

هل كانت مفيدة؟

المحلول

على أنظمة X86، تحصل كل وحدة المعالجة المركزية على APIC المحلي الخاصة بها (تحكم المقاطعة المتقدمة القابلة للبرمجة) والتي سلكي أيضا لبعضها البعض وإلى APIC I / O التي تتعامل مع مقاطعات جهاز التوجيه إلى الجهة القصيرة المحلية.

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

أتصور أن وحدة المعالجة المركزية متعددة النواة لديها APIC محلي لكل جوهر، لكنني بصراحة غير متأكد من ذلك.

انظر هذه الروابط لمزيد من التفاصيل:

نصائح أخرى

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

سألت بالفعل من هذا السؤال مرة أخرى. ربما يمكن أن نقدم لك بعض البصيرة :)

كيف تعمل المقاطعات في ماكينات متعددة / متعددة Multicpu

أود أن أقول أنه سيعتمد على الشركة المصنعة للجهاز ...

ومع ذلك هذا الرابط يجعلني أعتقد أن معظمهم ربما يتعاملون مع المعالج الأساسي و / أو النواة الأولى.

رابط آخر

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top