مقاطعة

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

في الحواسيب الرقمية ، تُعرَّف المقاطعة [ أ ] بأنها طلبٌ يُقدَّم للمعالج لمقاطعة تنفيذ التعليمات البرمجية الحالية (عند السماح بذلك)، حتى يتسنى معالجة الحدث في الوقت المناسب. إذا قُبِل الطلب، يُعلِّق المعالج أنشطته الحالية، ويحفظ حالته ، ويُنفِّذ دالة تُسمى معالج المقاطعة (أو روتين خدمة المقاطعة ، ISR) للتعامل مع الحدث. غالبًا ما تكون هذه المقاطعة مؤقتة، مما يسمح للبرنامج باستئناف [ ب ] أنشطته الطبيعية بعد انتهاء معالج المقاطعة، مع العلم أن المقاطعة قد تُشير في الواقع إلى خطأ فادح. [ 3 ]

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

تاريخ

تم إدخال المقاطعات المادية كتحسين، مما أدى إلى التخلص من وقت الانتظار غير المُنتج في حلقات الاستقصاء ، في انتظار الأحداث الخارجية. كان نظام DYSEAC أول نظام يستخدم هذا النهج ، وقد اكتمل بناؤه عام 1954، على الرغم من أن الأنظمة السابقة كانت توفر وظائف لمعالجة الأخطاء. [ 5 ]

يُنسب الفضل عمومًا إلى حاسوب UNIVAC 1103A في استخدام المقاطعات لأول مرة عام 1953. [ 6 ] [ 7 ] في وقت سابق، على حاسوب UNIVAC I (1951)، كان تجاوز السعة الحسابية إما يؤدي إلى تنفيذ روتين تصحيح مكون من تعليمتين عند العنوان 0، أو، حسب اختيار المبرمج، يتسبب في توقف الحاسوب. وقد تضمن حاسوب IBM 650 (1954) أول استخدام لتقنية إخفاء المقاطعات. وكان حاسوب DYSEAC التابع للمكتب الوطني للمعايير (1954) أول من استخدم المقاطعات للإدخال والإخراج. وكان حاسوب IBM 704 أول من استخدم المقاطعات لتصحيح الأخطاء ، مع "مصيدة نقل"، والتي يمكنها استدعاء روتين خاص عند مصادفة تعليمة تفرع. وكان نظام TX-2 التابع لمختبر لينكولن بمعهد ماساتشوستس للتكنولوجيا (1957) أول من وفر مستويات متعددة من أولوية المقاطعات. [ 7 ]

الأنواع

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

مقاطعات الأجهزة

المقاطعة المادية هي حالة متعلقة بحالة الجهاز، قد تُشير إليها وحدة خارجية، مثل خط طلب المقاطعة (IRQ) في الحاسوب الشخصي، أو قد تكتشفها أجهزة مُدمجة في منطق المعالج (مثل مؤقت وحدة المعالجة المركزية في نظام IBM System/370)، لتُعلم نظام التشغيل [ 8 ] أن الجهاز يحتاج إلى تنبيه، أو في حال عدم وجود نظام تشغيل، من البرنامج المُشغل على وحدة المعالجة المركزية. قد تكون هذه الأجهزة الخارجية جزءًا من الحاسوب (مثل وحدة تحكم القرص ) أو أجهزة طرفية خارجية . على سبيل المثال، يؤدي الضغط على مفتاح في لوحة المفاتيح أو تحريك فأرة موصولة بمنفذ PS/2 إلى إطلاق مقاطعات مادية تُجبر المعالج على قراءة ضغطة المفتاح أو موضع الفأرة.

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

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

في بعض الأنظمة القديمة، مثل نظام CDC 3600 لعام 1964 ، [ 9 ] كانت جميع المقاطعات تُوجَّه إلى نفس الموقع، وكان نظام التشغيل يستخدم تعليمة خاصة لتحديد المقاطعة غير المقنعة ذات الأولوية الأعلى. أما في الأنظمة الحديثة، فيوجد عادةً روتين مقاطعة منفصل لكل نوع من أنواع المقاطعات (أو لكل مصدر مقاطعة)، وغالبًا ما يُنفَّذ ذلك باستخدام جدول أو أكثر من جداول متجهات المقاطعات .

التغطية

إن إخفاء المقاطعة يعني تعطيلها، وبالتالي يتم تأجيلها [ ج ] أو تجاهلها [ د ] من قبل المعالج، بينما إن إلغاء إخفاء المقاطعة يعني تمكينها. [ 10 ]

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

بعض إشارات المقاطعة لا تتأثر بقناع المقاطعة، وبالتالي لا يمكن تعطيلها؛ وتُسمى هذه المقاطعات بالمقاطعات غير القابلة للإخفاء (NMIs). تشير هذه المقاطعات إلى أحداث ذات أولوية عالية لا يمكن تجاهلها تحت أي ظرف من الظروف، مثل إشارة انتهاء المهلة من مؤقت المراقبة . بالنسبة لمعالجات SPARC ، يمكن منع حدوث المقاطعة غير القابلة للإخفاء (NMI)، على الرغم من كونها ذات أولوية قصوى بين المقاطعات، باستخدام قناع المقاطعة. [ 11 ]

المقاطعات المفقودة

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

على سبيل المثال، يعتمد نظام التشغيل IBM Operating System/360 (OS/360) على مقاطعة نهاية الجهاز عند عدم جاهزيته عند تركيب شريط على محرك الأشرطة، ولن يقرأ ملصق الشريط حتى تحدث هذه المقاطعة أو تتم محاكاتها. أضافت IBM شيفرة برمجية إلى OS/360 بحيث يحاكي الأمر VARY ONLINE مقاطعة نهاية الجهاز على الجهاز المستهدف.

مقاطعات زائفة

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

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

قد يكون الانقطاع الزائف أيضًا نتيجة لشذوذ كهربائي بسبب تصميم الدائرة المعيب، أو مستويات الضوضاء العالية، أو التداخل ، أو مشاكل التوقيت، أو في حالات نادرة، أخطاء الجهاز . [ 12 ]

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

مقاطعات البرامج

مصادر المقاطعة ومعالجة المعالج

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

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

عادةً، تتولى نواة نظام التشغيل رصد ومعالجة المقاطعات البرمجية. تُعالج بعض المقاطعات بشفافية تامة للبرنامج، فعلى سبيل المثال، يتمثل الحل الطبيعي لخطأ الصفحة في إتاحة الوصول إلى الصفحة المطلوبة في الذاكرة الفعلية. أما في حالات أخرى، مثل خطأ تجزئة الذاكرة ، فيُنفذ نظام التشغيل دالة رد نداء. في أنظمة التشغيل الشبيهة بنظام يونكس، يتضمن ذلك إرسال إشارة مثل SIGSEGV أو SIGBUS أو SIGILL أو SIGFPE ، والتي قد تستدعي معالج إشارة أو تُنفذ إجراءً افتراضيًا (إنهاء البرنامج). في نظام ويندوز، تتم دالة رد النداء باستخدام معالجة الاستثناءات المهيكلة مع رمز استثناء مثل STATUS_ACCESS_VIOLATION أو STATUS_INTEGER_DIVIDE_BY_ZERO. [ 13 ] تؤدي المقاطعات البرمجية المتعمدة لاستدعاءات النظام إلى استدعاءات لروتينات في النواة لتنفيذ الوظيفة المطلوبة من قِبل استدعاء النظام.

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

مصطلحات

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

يقسم معالج x86 المقاطعات إلى مقاطعات (مادية) واستثناءات برمجية ، ويحدد ثلاثة أنواع من الاستثناءات: الأعطال، والمصائد، والإجهاض. [ 15 ] [ 16 ] المقاطعات (المادية) هي مقاطعات يتم تشغيلها بشكل غير متزامن بواسطة جهاز إدخال/إخراج، وتسمح بإعادة تشغيل البرنامج دون فقدان الاستمرارية. [ 15 ] يمكن إعادة تشغيل العطل أيضًا، ولكنه مرتبط بالتنفيذ المتزامن لتعليمات معينة - يشير عنوان الإرجاع إلى التعليمات التي تسببت في العطل. تشبه المصيدة العطل، إلا أن عنوان الإرجاع يشير إلى التعليمات التي سيتم تنفيذها بعد تعليمات المصيدة؛ [ 17 ] ومن أبرز استخداماتها تنفيذ استدعاءات النظام . [ 16 ] يُستخدم الإجهاض للأخطاء الجسيمة، مثل أخطاء الأجهزة والقيم غير القانونية في جداول النظام، وغالبًا [ g ] لا يسمح بإعادة تشغيل البرنامج. [ 17 ]

تستخدم ARM مصطلح "الاستثناء" للإشارة إلى جميع أنواع المقاطعات، [ 18 ] وتقسم الاستثناءات إلى مقاطعات (مادية) ، وإجهاضات ، وإعادة ضبط ، وتعليمات توليد الاستثناءات. تتوافق الإجهاضات مع استثناءات x86، وقد تكون إجهاضات جلب مسبق (فشل جلب التعليمات) أو إجهاضات بيانات (فشل الوصول إلى البيانات)، وقد تكون متزامنة أو غير متزامنة. قد تكون الإجهاضات غير المتزامنة دقيقة أو غير دقيقة. أما إجهاضات وحدة إدارة الذاكرة (أخطاء الصفحات) فهي متزامنة. [ 19 ]

يستخدم RISC-V مصطلح المقاطعة كمصطلح شامل وكذلك للمجموعة الفرعية الخارجية؛ وتسمى المقاطعات الداخلية بالاستثناءات.

أساليب التفعيل

صُممت كل إشارة مقاطعة ليتم تفعيلها إما بمستوى إشارة منطقية أو بحافة إشارة معينة (انتقال مستوى). تطلب المدخلات الحساسة للمستوى خدمة المعالج باستمرار طالما تم تطبيق مستوى منطقي معين (مرتفع أو منخفض) على المدخل. أما المدخلات الحساسة للحافة فتتفاعل مع حواف الإشارة: ستؤدي حافة معينة (صاعدة أو هابطة) إلى تثبيت طلب الخدمة؛ ويعيد المعالج ضبط التثبيت عند تنفيذ معالج المقاطعة.

يتم تشغيلها عند مستوى معين

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

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

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

مُفعَّل بالحافة

المقاطعة المُفعّلة بالحافة هي مقاطعة يتم الإشارة إليها عن طريق تغيير مستوى الإشارة على خط المقاطعة، إما حافة هابطة (من مستوى عالٍ إلى مستوى منخفض) أو حافة صاعدة (من مستوى منخفض إلى مستوى عالٍ). يقوم الجهاز الراغب في الإشارة إلى حدوث مقاطعة بإرسال نبضة إلى الخط ثم يُعيده إلى حالته غير النشطة.

يكمن جوهر آلية التفعيل بالحافة في ضرورة انتقال الإشارة لتفعيل المقاطعة؛ فعلى سبيل المثال، إذا كان الانتقال من مستوى عالٍ إلى مستوى منخفض، فسيتم تفعيل مقاطعة واحدة فقط عند الحافة الهابطة، ولن يؤدي استمرار المستوى المنخفض إلى تفعيل مقاطعة أخرى. يجب أن تعود الإشارة إلى المستوى العالي ثم تنخفض مجددًا لتفعيل مقاطعة أخرى. وهذا يختلف عن آلية التفعيل بالمستوى، حيث يستمر المستوى المنخفض في توليد المقاطعات (إذا كانت مُفعّلة) حتى تعود الإشارة إلى مستواها العالي.

قد تتضمن أجهزة الكمبيوتر المزودة بمقاطعات تعمل عند حافة الإشارة سجل مقاطعات يحتفظ بحالة المقاطعات المعلقة. وعادةً ما تحتوي الأنظمة المزودة بسجلات مقاطعات على سجلات أقنعة المقاطعات أيضًا.

استجابة المعالج

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

  • تم تنفيذ جميع التعليمات السابقة للتعليمة التي أشار إليها الحاسوب بالكامل.
  • لم يتم تنفيذ أي تعليمات تتجاوز تلك التي أشار إليها الكمبيوتر، أو تم التراجع عن أي من هذه التعليمات قبل معالجة المقاطعة.
  • يتم حفظ حالة المعالج [ h ] بطريقة معروفة. عادةً ما يتم تخزين الحالة في موقع معروف، ولكن في بعض الأنظمة يتم تخزينها على مكدس الذاكرة.

توجد عدة بنى مختلفة للتعامل مع المقاطعات. في بعضها، يوجد معالج مقاطعة واحد [ 20 ] يقوم بالبحث عن المقاطعة المُفعّلة ذات الأولوية الأعلى. وفي بنى أخرى، توجد معالجات مقاطعات منفصلة لأنواع المقاطعات المختلفة، [ 21 ] أو قنوات أو أجهزة إدخال/إخراج منفصلة، ​​أو كليهما. [ 22 ] [ 23 ] قد يكون لعدة أسباب للمقاطعات نفس نوع المقاطعة، وبالتالي نفس معالج المقاطعة، مما يتطلب من معالج المقاطعة تحديد السبب. [ 21 ]

تنفيذ النظام

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

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

في تطبيقات الأنظمة على شريحة واحدة (SoC)، تأتي المقاطعات من كتل مختلفة من الشريحة، وعادةً ما يتم تجميعها في وحدة تحكم المقاطعات المتصلة بمعالج واحد أو عدة معالجات (في نظام متعدد النوى). [ 24 ]

خطوط المقاطعة المشتركة

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

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

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

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

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

صعوبة في مشاركة خطوط المقاطعة

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

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

هجين

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

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

تم إرسال إشارة الرسالة

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

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

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

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

يستخدم ناقل PCI Express ، وهو ناقل كمبيوتر تسلسلي، المقاطعات التي يتم إرسال إشارات الرسائل إليها حصريًا.

جرس الباب

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

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

يمكن مقارنة مقاطعات جرس الباب بمقاطعات الإشارة بالرسالة ، حيث أن لهما بعض أوجه التشابه.

معالج متعدد IPI

في أنظمة المعالجات المتعددة ، قد يرسل المعالج طلب مقاطعة إلى معالج آخر عبر مقاطعات المعالجات [ i ] (IPI).

أداء

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

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

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

تُوزّع آلية توزيع حركة البيانات الواردة، المعروفة باسم توجيه حزم الاستقبال (RPS)، وهي آلية برمجية بالكامل، حركة البيانات الواردة بين النوى في مراحل لاحقة من مسار البيانات، كجزء من وظيفة معالج المقاطعات . تشمل مزايا RPS مقارنةً بـ RSS عدم الحاجة إلى مكونات مادية محددة، وفلاتر توزيع حركة بيانات أكثر تطورًا، وانخفاض معدل المقاطعات الصادرة عن بطاقة الشبكة. أما عيبها، فهو زيادة معدل المقاطعات بين المعالجات (IPIs). يُطوّر توجيه تدفق الاستقبال (RFS) النهج البرمجي من خلال مراعاة موضع التطبيق ؛ حيث تتحقق تحسينات إضافية في الأداء بمعالجة طلبات المقاطعة من قِبل النوى نفسها التي ستستهلك حزم الشبكة المحددة بواسطة التطبيق المستهدف. [ 26 ] [ 28 ] [ 29 ]

الاستخدامات النموذجية

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

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

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

تُستخدم المقاطعات أحيانًا لمحاكاة التعليمات غير المُنفذة في بعض أجهزة الكمبيوتر ضمن عائلة منتجات معينة. [ 30 ] [ 31 ] على سبيل المثال ، قد تُنفذ تعليمات الفاصلة العائمة في مكونات مادية في بعض الأنظمة، بينما تُحاكى في أنظمة أقل تكلفة. في الحالة الأخيرة، سيؤدي تنفيذ تعليمة فاصلة عائمة غير مُنفذة إلى مقاطعة استثناء "تعليمات غير قانونية". سيقوم معالج المقاطعة بتنفيذ دالة الفاصلة العائمة برمجيًا، ثم يعود إلى البرنامج المُقاطع كما لو أن التعليمة المُنفذة في المكونات المادية قد نُفذت. [ 32 ] وهذا يُوفر قابلية نقل برامج التطبيقات عبر جميع منتجات هذه العائلة.

المقاطعات تشبه الإشارات ، والفرق هو أن الإشارات تُستخدم للتواصل بين العمليات (IPC)، بوساطة النواة (ربما عبر استدعاءات النظام) وتتولى العمليات معالجتها، بينما تتم وساطة المقاطعات بواسطة المعالج وتتولى النواة معالجتها . قد تُمرر النواة مقاطعة كإشارة إلى العملية التي تسببت بها (من الأمثلة الشائعة: SIGSEGV و SIGBUS و SIGILL و SIGFPE ).

انظر أيضاً

ملحوظات

  1. تختلف المصطلحات المستخدمة باختلاف المنصة والمؤلف. ومن المصطلحات الأخرى المستخدمة الاستثناء [ 1 ] والفخ[ 2 ] .
  2. قد يستأنف نظام التشغيل العملية التي توقفت أو قد ينتقل إلى عملية مختلفة.
  3. عادةً، تظل أحداث المقاطعة المرتبطة بالإدخال/الإخراج معلقة حتى يتم تمكين المقاطعة أو مسحها بشكل صريح، على سبيل المثال، بواسطة تعليمات Test Pending Interruption ( TPI ) الخاصة بنظام IBM System/370-XA والإصدارات الأحدث.
  4. على سبيل المثال، عندما تكون بتات قناع البرنامج على نظام IBM System/360 هي 0 (معطلة)، فإن أحداث تجاوز السعة والأهمية المقابلة لا تؤدي إلى مقاطعة معلقة.
  5. قد يكون سجل القناع سجلًا واحدًا أو عدة سجلات، على سبيل المثال، بتات في PSW وبتات أخرى في سجلات التحكم .
  6. انظر INT (تعليمات x86)
  7. يمكن لبعض أنظمة التشغيل التعافي من الأخطاء الجسيمة، على سبيل المثال، الترحيل في صفحة من ملف الترحيل بعد خطأ ECC غير قابل للتصحيح في صفحة غير معدلة.
  8. قد يكون هذا مجرد عداد البرنامج (PC) ، أو PSW ، أو سجلات متعددة.
  9. تُعرف باسم النقر على الكتف في بعض أنظمة تشغيل IBM.

مراجع

  1. بلانتز، روبرت ج. "الفصل 21: الاستثناءات والمقاطعات". مقدمة في تنظيم الحاسوب: ARM - نظرة متعمقة على مكونات الحاسوب ولغة التجميع ARM A64 . بدون مكبس نشا . ص  468. ISBN 978-1-7185-0274-1LCCN 2024946402. ملاحظة: على الرغم من تشابه المفاهيم العامة، إلا أن المصطلحات تختلف، لذا يُرجى الانتباه عند قراءة الأدلة الخاصة بكل نظام. على سبيل المثال، تستخدم ARM مصطلح "الاستثناء" كمصطلح عام، حيث يُعد "المقاطعة" نوعًا من أنواع الاستثناءات. بينما تستخدم Intel مصطلح "المقاطعة" كمصطلح عام، حيث يُعد "الاستثناء" نوعًا من أنواع المقاطعات. 
  2. 1 2 "ملف المصطلحات، الإصدار 4.4.7" . 27-10-2003. مؤرشف من الأصل في 18-02-2007 . تم الاطلاع عليه في 20 يناير 2022 .
  3. 1 2 جوناثان كوربيت؛ أليساندرو روبيني؛ جريج كروه-هارتمان (2005). " برامج تشغيل أجهزة لينكس ، الطبعة الثالثة، الفصل 10. معالجة المقاطعات" ( ملف PDF) . دار نشر أورايلي ميديا . ص 269. مؤرشف (ملف PDF) من الأصل في 14 مارس 2015. تم الاطلاع عليه في 25 ديسمبر 2014. بعد ذلك، يصبح الأمر مجرد تنظيف، وتشغيل مقاطعات البرامج، والعودة إلى العمل المعتاد. قد يكون "العمل المعتاد" قد تغير نتيجةً للمقاطعة (قد يكون المعالج عملية، على سبيل المثال)، لذا فإن آخر ما يحدث عند العودة من المقاطعة هو إعادة جدولة محتملة للمعالج. wake_up
  4. روزنتال، سكوت (مايو 1995). "أساسيات المقاطعات" . مؤرشف من الأصل بتاريخ 26 أبريل 2016. تم الاطلاع عليه بتاريخ 11 نوفمبر 2010 .
  5. كود، إدغار ف. "البرمجة المتعددة". التطورات في الحوسبة . 3 : 82.
  6. بيل، سي. جوردون؛ نيويل، ألين (1971). هياكل الحاسوب: قراءات وأمثلة . ماكجرو هيل. ص 46. ISBN  9780070043572تم الاطلاع عليه بتاريخ 18 فبراير 2019 .
  7. 1 2 سموثرمان، مارك. "مقاطعات" . مؤرشف من الأصل في 4 أبريل 2020. تم الاسترجاع في 22 ديسمبر 2021 .
  8. "مقاطعات الأجهزة" . مؤرشف من الأصل بتاريخ 2014-09-03 . تم الاطلاع عليه بتاريخ 2014-02-09 .
  9. "تعليمات المقاطعة". دليل مرجعي لنظام الكمبيوتر Control Data 3600 (ملف PDF) . شركة Control Data. يوليو 1964. الصفحات 4-6 . 60021300. 
  10. باي، يينغ (2017). هندسة المتحكمات الدقيقة باستخدام MSP432: الأساسيات والتطبيقات . مطبعة CRC. ص 21. ISBN  978-1-4987-7298-3LCCN 2016020120. في نظام Cortex -M4، تتمتع المقاطعات والاستثناءات بالخصائص التالية: ... بشكل عام، تُستخدم بتة واحدة في سجل القناع لإخفاء (تعطيل) أو إظهار (تمكين) مقاطعات/استثناءات معينة للسماح بحدوثها . 
  11. "مستويات المقاطعة" . مؤرشف من الأصل بتاريخ 17-11-2023 . تم الاطلاع عليه بتاريخ 17-11-2023 .
  12. لي، تشينغ؛ ياو، كارولين (2003). مفاهيم الزمن الحقيقي للأنظمة المدمجة . مطبعة سي آر سي. ص 163. ISBN  1482280825.
  13. "استثناءات الأجهزة" . docs.microsoft.com . 3 أغسطس 2021. مؤرشف من الأصل في 22 ديسمبر 2021. تم الاطلاع عليه في 21 يناير 2022 .
  14. هايد ، راندال (1996). "الفصل السابع عشر: المقاطعات، والفخاخ، والاستثناءات (الجزء 1)" . فن برمجة لغة التجميع . مؤرشف من الأصل في 22 ديسمبر 2021. تم الاسترجاع في 22 ديسمبر 2021. لقد توسع مفهوم المقاطعة على مر السنين . وقد زادت عائلة معالجات 80x86 من الالتباس المحيط بالمقاطعات من خلال تقديم تعليمة int (مقاطعة البرمجيات). في الواقع، استخدم مصنعون مختلفون مصطلحات مثل الاستثناءات، والأخطاء، والإجهاض، والفخاخ، والمقاطعات لوصف الظواهر التي يناقشها هذا الفصل. لسوء الحظ، لا يوجد إجماع واضح على المعنى الدقيق لهذه المصطلحات. يتبنى مؤلفون مختلفون مصطلحات مختلفة لاستخدامهم الخاص.
  15. 1 2 "دليل مطوري برامج معمارية Intel® 64 و IA-32، المجلد 1: المعمارية الأساسية" . الصفحات 6-12، المجلد 1. تم الاطلاع عليه بتاريخ 22 ديسمبر 2021 . 
  16. 1 2 براينت، راندال إي.؛ أوهالارون، ديفيد ر. (2016). "8.1.2 فئات الاستثناءات". أنظمة الحاسوب: منظور المبرمج ( الطبعة الثالثة، العالمية). هارلو: بيرسون. ISBN  978-1-292-10176-7.
  17. 1 2 "دليل مطوري برامج معمارية Intel® 64 و IA-32، المجلد 3A: دليل برمجة النظام، الجزء 1" . الصفحات 6-5، المجلد 3A . تم الاطلاع عليه بتاريخ 22 ديسمبر 2021 . 
  18. "معالجة الاستثناءات" . developer.arm.com . دليل مبرمجي سلسلة ARM Cortex-A لمعالجات ARMv7-A . تم الاطلاع عليه بتاريخ 21 يناير 2022 .
  19. "أنواع الاستثناءات" . developer.arm.com . دليل مبرمجي سلسلة ARM Cortex-A لمعالجات ARMv7-A . تم الاطلاع عليه بتاريخ 22 ديسمبر 2021 .
  20. "الفصل الرابع - نظام المقاطعة" (ملف PDF) . 3600 - نظام الحاسوب - دليل مرجعي (ملف PDF) . المراجعة K. شركة Control Data . 11 أكتوبر 1966. الصفحات 4-1 – 4-12 . 60021300K . تاريخ الاسترجاع: 17 مايو 2023 . 
  21. ١ ٢ مبادئ تشغيل نظام IBM System/360 (ملف PDF) (الطبعة الثامنة ). IBM . سبتمبر ١٩٦٨. ص ٧٧. A22-6821-7. مؤرشف (ملف PDF) من الأصل بتاريخ ١٩ مارس ٢٠٢٢. تم الاطلاع عليه بتاريخ ١٧ مايو ٢٠٢٣ .  
  22. "الفصل 5. تقنيات البرمجة" (ملف PDF) . دليل معالج PDP-11 PDP11/04/34a/44/60/70 (ملف PDF) . شركة ديجيتال إكويبمنت . 1979. الصفحات 128-131 . تاريخ الاطلاع: 1 مارس 2025 . 
  23. دليل ملحقات وواجهات PDP-11 (ملف PDF) . شركة ديجيتال إكويبمنت . صفحة 4. مؤرشف (ملف PDF) من النسخة الأصلية بتاريخ 4 يونيو 2023. تم الاطلاع عليه بتاريخ 2 يونيو 2023 . 
  24. ييو، جوزيف (2010-01-01)، "الفصل 2 - نظرة عامة على معالج Cortex-M3" ، في ييو، جوزيف (محرر)، الدليل الشامل لمعالج ARM Cortex-M3 (الطبعة الثانية) ، أكسفورد: نيونس، الصفحات 11-24 ، doi : 10.1016/b978-1-85617-963-8.00005-3 ، ISBN  978-1-85617-963-8تم الاطلاع عليه بتاريخ 11 أكتوبر 2023
  25. موغول، جيفري سي؛ راماكريشنان، كيه كيه (1997). "القضاء على حالة التعطل أثناء الاستقبال في نواة تعمل بنظام المقاطعات" . معاملات ACM لأنظمة الحاسوب . 15 (3): 217-252 . doi : 10.1145/263326.263335 . S2CID 215749380. تاريخ الاسترجاع: 11 نوفمبر 2010 . 
  26. ١ ٢ توم هربرت؛ ويليم دي بروين (٩ مايو ٢٠١٤). "Documentation/networking/scaling.txt" . وثائق نواة لينكس . kernel.org . مؤرشف من الأصل في ٢٢ مايو ٢٠١٤. تم الاطلاع عليه في ١٦ نوفمبر ٢٠١٤ .
  27. "ورقة بيانات عائلة وحدة تحكم إيثرنت جيجابت Intel 82574" (ملف PDF) . Intel . يونيو 2014. ص 1. تم الاطلاع عليه في 16 نوفمبر 2014 . 
  28. جوناثان كوربيت (17 نوفمبر 2009). "توجيه استلام الحزم" . LWN.net . مؤرشف من الأصل في 24 مايو 2018. تم الاطلاع عليه في 16 نوفمبر 2014 .
  29. جيك إيدج (7 أبريل 2010). "توجيه تدفق الاستقبال" . LWN.net . مؤرشف من الأصل في 29 نوفمبر 2014. تم الاسترجاع في 16 نوفمبر 2014 .
  30. "محاكي الأعداد العشرية" (ملف PDF) . نظام التشغيل IBM System/360 - دليل دعم الطراز 91 (ملف PDF) . مكتبة مراجع الأنظمة. الصفحات 11-12 . C28-6666-0 . تاريخ الاسترجاع: 2 سبتمبر 2024 . 
  31. ثوسو، شاليش؛ وآخرون . "براءة اختراع أمريكية رقم 5632028 أ" . براءات اختراع جوجل . تم الاطلاع عليه بتاريخ 13 أغسطس 2017 . 
  32. شركة ألترا (2009). مرجع معالج Nios II (ملف PDF) . صفحة 4. تم الاطلاع عليه بتاريخ 13 أغسطس 2017 .