المقاطعات التي تشير إليها الرسائل
تُعدّ المقاطعات المُشار إليها بالرسائل ( MSI ) طريقةً للإشارة إلى المقاطعات ، حيث تستخدم رسائل خاصة ضمن النطاق لاستبدال الإشارات التقليدية خارج النطاق على خطوط مقاطعة مُخصصة. ورغم أن تنفيذ المقاطعات المُشار إليها بالرسائل في الجهاز أكثر تعقيدًا، إلا أنها تتمتع بمزايا هامة مقارنةً بالإشارة إلى المقاطعات خارج النطاق القائمة على الدبابيس، مثل تحسين أداء معالجة المقاطعات. وهذا على عكس آليات المقاطعة التقليدية، مثل نظام طلب المقاطعة (IRQ) القديم.
يدعم ناقل PCI المقاطعات المُشار إليها بالرسائل منذ الإصدار 2.2، وكذلك ناقل PCI Express الأحدث . كما تستخدم بعض البنى غير المتوافقة مع PCI المقاطعات المُشار إليها بالرسائل.
ملخص
تقليديًا، يحتوي الجهاز على خط مقاطعة (دبوس) يُفعّله عند رغبته في إرسال إشارة مقاطعة إلى بيئة المعالجة الرئيسية. يُعدّ هذا الشكل التقليدي لإشارات المقاطعة شكلاً خارج النطاق من إشارات التحكم، حيث يستخدم مسارًا مخصصًا لإرسال معلومات التحكم هذه، بشكل منفصل عن مسار البيانات الرئيسي. يستبدل نظام MSI خطوط المقاطعة المخصصة هذه بإشارات داخل النطاق، وذلك من خلال تبادل رسائل خاصة تُشير إلى المقاطعات عبر مسار البيانات الرئيسي. على وجه الخصوص، يسمح نظام MSI للجهاز بكتابة كمية صغيرة من البيانات التي تصف المقاطعة إلى عنوان إدخال/إخراج خاص مُخزّن في الذاكرة ، ثم تُرسل مجموعة الشرائح المقاطعة المقابلة إلى المعالج. [ 1 ] [ 2 ] [ 3 ]
من المفاهيم الخاطئة الشائعة حول تقنية MSI أنها تسمح للجهاز بإرسال بيانات إلى المعالج كجزء من المقاطعة. في الواقع، تُستخدم البيانات المُرسلة كجزء من عملية كتابة الذاكرة من قِبل مجموعة الشرائح لتحديد المقاطعة التي سيتم تفعيلها على كل معالج؛ ولا تتوفر هذه البيانات للجهاز لإرسال معلومات إضافية إلى معالج المقاطعة. [ 1 ] [ 2 ] [ 3 ]
على سبيل المثال، لا يحتوي PCI Express على منافذ مقاطعة منفصلة على الإطلاق؛ بل يستخدم رسائل خاصة ضمن النطاق للسماح بمحاكاة تأكيد أو إلغاء تأكيد المنفذ. تستخدم بعض البنى غير PCI أيضًا MSI؛ كمثال آخر، لا تحتوي أجهزة HP GSC على منافذ مقاطعة، ويمكنها توليد المقاطعات فقط عن طريق الكتابة مباشرةً إلى سجل مقاطعة المعالج في مساحة الذاكرة. يدعم بروتوكول HyperTransport أيضًا MSI. [ 4 ]
المزايا
على الرغم من أن تنفيذ المقاطعات المُشار إليها بالرسائل في الجهاز أكثر تعقيدًا، إلا أنها تتمتع بمزايا هامة مقارنةً بالمقاطعات خارج النطاق القائمة على الدبابيس. فمن الناحية الميكانيكية، يُتيح عدد الدبابيس الأقل موصلًا أبسط وأرخص وأكثر موثوقية. ورغم أن هذا لا يُعد ميزةً لموصل PCI القياسي، إلا أن PCI Express يستفيد من هذه الوفورات.
تزيد تقنية MSI من عدد المقاطعات الممكنة. فبينما كانت تقنية PCI التقليدية محدودة بأربع مقاطعات لكل بطاقة (ولأنها كانت مشتركة بين جميع البطاقات، فإن معظمها يستخدم مقاطعة واحدة فقط)، تسمح المقاطعات التي يتم إرسالها عبر الرسائل بعشرات المقاطعات لكل بطاقة، عند الحاجة. [ 1 ]
هناك أيضًا ميزة طفيفة في الأداء. في البرمجيات، قد يتزامن مقاطعة تعتمد على دبابيس التوصيل مع عملية كتابة مُرسلة إلى الذاكرة. أي أن جهاز PCI يكتب البيانات إلى الذاكرة ثم يرسل مقاطعة للإشارة إلى اكتمال عملية الكتابة المباشرة إلى الذاكرة (DMA) . مع ذلك، قد يقوم جسر PCI أو وحدة تحكم الذاكرة بتخزين عملية الكتابة مؤقتًا لتجنب التداخل مع استخدامات الذاكرة الأخرى. قد تصل المقاطعة قبل اكتمال عملية الكتابة المباشرة إلى الذاكرة، ما يسمح للمعالج بقراءة بيانات قديمة من الذاكرة. [ 5 ] ولمنع هذا التزامن، كان على معالجات المقاطعات قراءة البيانات من الجهاز للتأكد من اكتمال عملية الكتابة المباشرة إلى الذاكرة. وقد ترتب على هذه القراءة انخفاض طفيف في الأداء. لا يمكن لعملية كتابة MSI أن تتجاوز عملية كتابة DMA، وبالتالي يتم التخلص من هذا التزامن. [ 6 ]
أنواع MSI
يُعرّف PCI امتدادين اختياريين لدعم المقاطعات المُشار إليها بالرسائل، وهما MSI و MSI-X. ويُعرّف PCI Express آلية خاصة به تعتمد على الرسائل لمحاكاة مقاطعات PCI القديمة.
MSI
تسمح تقنية MSI (المُعرّفة لأول مرة في PCI 2.2) للجهاز بتخصيص 1 أو 2 أو 4 أو 8 أو 16 أو 32 مقاطعة. يُبرمج الجهاز بعنوان للكتابة إليه (عادةً ما يكون هذا العنوان سجل تحكم في وحدة تحكم المقاطعات )، وكلمة بيانات مكونة من 16 بت لتعريفه. يُضاف رقم المقاطعة إلى كلمة البيانات لتحديدها. [ 1 ] بعض المنصات، مثل ويندوز، لا تستخدم جميع المقاطعات الـ 32، بل تستخدم 16 مقاطعة فقط. [ 7 ]
MSI-X
تسمح تقنية MSI-X (التي عُرّفت لأول مرة في PCI 3.0) للجهاز بتخصيص ما يصل إلى 2048 مقاطعة. وقد وُجد أن العنوان الواحد المستخدم في تقنية MSI الأصلية يُقيّد بعض البنى. وعلى وجه الخصوص، صعّب ذلك توجيه المقاطعات الفردية إلى معالجات مختلفة، وهو أمر مفيد في بعض تطبيقات الشبكات عالية السرعة. تسمح تقنية MSI-X بعدد أكبر من المقاطعات، وتُخصّص لكل منها عنوانًا مستهدفًا وكلمة بيانات منفصلة. لا تدعم الأجهزة المزودة بتقنية MSI-X بالضرورة 2048 مقاطعة. [ 3 ] [ 8 ] [ 9 ] [ 10 ]
تُعد الميزات الاختيارية في MSI (عنونة 64 بت وإخفاء المقاطعات) إلزامية أيضًا مع MSI-X.
محاكاة مقاطعة PCI Express القديمة
لا يحتوي PCI Express على منافذ مقاطعة فعلية، ولكنه يحاكي منافذ المقاطعة الفعلية الأربعة لـ PCI عبر رسائل PCI Express مخصصة مثل Assert_INTA و Deassert_INTC . وبما أن هذه الآلية تعتمد على الرسائل (على مستوى PCI Express)، فإنها توفر بعض مزايا آلية MSI على مستوى PCI، ولكن ليس كلها: فلم تعد المنافذ الافتراضية الأربعة لكل جهاز مشتركة على ناقل البيانات (مع أن وحدات تحكم PCI Express قد لا تزال تجمع المقاطعات القديمة داخليًا)، ولم تعد تغييرات المقاطعات تعاني بطبيعتها من حالات التزامن غير المتوقعة.
يسمح PCI Express للأجهزة باستخدام رسائل المقاطعة القديمة هذه، مع الحفاظ على توافق البرامج مع برامج تشغيل PCI، ولكن يُطلب منها أيضًا دعم MSI أو MSI-X في طبقة PCI.
أنظمة x86
في أنظمة إنتل، يجب تفعيل وحدة معالجة المقاطعات المحلية (LAPIC ) لكي تعمل تقنية MSI/MSI-X الخاصة بمعالج PCI (وPCI Express)، حتى في الأنظمة أحادية المعالج (أحادية النواة). [ 11 ] [ 12 ] في هذه الأنظمة، تتم معالجة مقاطعات MSI عن طريق كتابة متجه المقاطعة مباشرةً في وحدة LAPIC الخاصة بالمعالج/النواة التي تحتاج إلى معالجة المقاطعة. دعمت وحدات LAPIC من إنتل لعام 2009 ما يصل إلى 224 مقاطعة قائمة على تقنية MSI. [ 12 ] وفقًا لاختبار معياري أجرته إنتل عام 2009 باستخدام نظام لينكس ، أدى استخدام تقنية MSI إلى تقليل زمن استجابة المقاطعات بمقدار ثلاثة أضعاف تقريبًا مقارنةً بتسليمها عبر وحدة APIC الخاصة بالإدخال/الإخراج. [ 13 ]
دعم نظام التشغيل
في عائلة أنظمة تشغيل مايكروسوفت، يدعم نظام التشغيل ويندوز فيستا والإصدارات اللاحقة كلاً من MSI وMSI-X. أُضيف الدعم في دورة تطوير Longhorn حوالي عام 2004. [ 14 ] لا يدعم نظام التشغيل MSI في الإصدارات الأقدم مثل ويندوز إكس بي أو ويندوز سيرفر 2003. [ 15 ]
أضاف نظام التشغيل Solaris Express 6/05 الذي صدر في عام 2005 دعمًا لـ MSI و MSI-X كجزء من إطار عمل مقاطعة واجهة برنامج تشغيل الجهاز (DDI) الجديد. [ 16 ]
أضافت إصدارات FreeBSD 6.3 و 7.0 التي صدرت في عام 2008 دعمًا لـ MSI و MSI-X. [ 17 ]
أضاف نظام التشغيل OpenBSD 5.0 الذي صدر عام 2011 دعمًا لتقنية MSI. [ 18 ] وأضاف الإصدار 6.0 دعمًا لتقنية MSI-X. [ 19 ]
حصل نظام لينكس على دعم MSI و MSI-X حوالي عام 2003. [ 20 ] ومن المعروف أن إصدارات نواة لينكس قبل 2.6.20 تحتوي على أخطاء وقيود خطيرة في تطبيقها لـ MSI/MSI-X. [ 21 ]
حصل برنامج Haiku على دعم MSI حوالي عام 2010. [ 22 ] تمت إضافة دعم MSI-X لاحقًا، في عام 2013. [ 23 ]
أضاف نظام NetBSD 8.0 الذي تم إصداره في عام 2018 دعمًا لـ MSI و MSI-X.
يدعم نظام التشغيل VxWorks 7 كلاً من MSI و MSI-X.
انظر أيضاً
مراجع
- 1 2 3 4 مواصفات ناقل PCI المحلي، الإصدار 2.2 . PCI-SIG. ديسمبر 1998.
{{cite book}}تم|work=تجاهله ( مساعدة ) - 1 2 مواصفات ناقل PCI المحلي، الإصدار 2.3 . PCI-SIG. 2002.
{{cite book}}تم|work=تجاهله ( مساعدة ) - 1 2 3 مواصفات ناقل PCI المحلي، الإصدار 3.0 . PCI-SIG. أغسطس 2002.
{{cite book}}تم|work=تجاهله ( مساعدة ) - ↑ دون أندرسون؛ جاي ترودن (2003). بنية نظام النقل الفائق . أديسون-ويسلي بروفيشنال. ص 200. ISBN 978-0-321-16845-0.
- ↑ كولمان، جيمس (2009). "نظرة عامة على أساليب إيصال المقاطعات، ومقاطعات XT-PIC القديمة، وقيود XT-PIC". تقليل زمن استجابة المقاطعات من خلال استخدام المقاطعات المُشار إليها بالرسائل (ملف PDF) . شركة إنتل. ص 10.
- ↑ كوربيت، جوناثان؛ روبيني، أليساندرو؛ كروه-هارتمان، جريج (2009). "الفصل 15: تعيين الذاكرة وDMA". برامج تشغيل أجهزة لينكس ( الطبعة الثالثة). أورايلي ميديا . تم الاسترجاع في 20 أبريل 2019 .
- ↑ مايكروسوفت. "تمكين المقاطعات المُشار إليها بالرسائل في سجل النظام" . شركة مايكروسوفت . تم الاطلاع عليه بتاريخ 12 أبريل 2013 .
- ↑ "القسم 6.1: MSI و MSI-X". مواصفات PCI Express الأساسية، الإصدار 1.0a . PCI-SIG . أبريل 2003.
- ↑ "القسم 6.1: MSI و MSI-X". المواصفات الأساسية لـ PCI Express، الإصدار 1.1 . PCI-SIG . مارس 2005.
- ↑ "إشعار تغييرات هندسية من MSI-X". مواصفات ناقل PCI المحلي، الإصدار 2.3 (ملف PDF) . PCI-SIG .
- ↑ أنظمة المقاطعات الفرعية القائمة على APIC على أجهزة الكمبيوتر أحادية المعالج
- 1 2 كولمان، جيمس (2009). تقليل زمن استجابة المقاطعة من خلال استخدام المقاطعات المُشار إليها بالرسائل (ملف PDF) . شركة إنتل. الصفحات 10، 11.
- ↑ كولمان، جيمس (2009). "النتائج، منصة فئة محطات العمل". تقليل زمن استجابة المقاطعات من خلال استخدام المقاطعات المُشار إليها بالرسائل (ملف PDF) . شركة إنتل. ص 19.
- ↑ تحسينات بنية المقاطعات في نظام التشغيل مايكروسوفت ويندوز فيستا ، 11 أغسطس 2004
- ↑ PCI و PCI-X و PCI Express: الأسئلة الشائعة ، 18 نوفمبر 2005، الصفحة 4
- ↑ جون ستيرنز، جوفيندا تاتي، إدوارد جيلت، وأنيش جوبتا، (27 مارس 2006) التغييرات التي أُجريت لدعم MSI في معالجات المقاطعات المتقدمة في نظام التشغيل Solaris Express 6/05
- ↑ جون هـ. بالدوين، "مقاطعات PCI لأجهزة x86 تحت نظام FreeBSD"، قسم "التوافر"
- ↑ مارك كيتينيس، (مايو 2011) مقاطعات MSI للعديد من الأجهزة، على تلك البنى التي يمكنها دعمها (amd64، i386، sparc64 فقط حتى الآن)
- ↑ مارك كيتينيس، (مايو 2016) تمت إضافة الدعم الأولي لـ MSI-X
- ↑ MSI-HOWTO.txt الإصدار الأول
- ↑ هل يمكنني استخدام مقاطعات MSI-X مع Myri10GE على نظام Linux 2.6.18 والإصدارات الأقدم؟
- ↑إضافة دعم MSI إلى تحديث هايكو
- ↑تحديث هايكو الذي أضاف دعم MSI-X
روابط خارجية
- الإلكترونيات الرقمية
- المقاطعات
- وصلات المكونات الطرفية
