إنتل 8259

وحدة التحكم Intel 8259 هي وحدة تحكم مقاطعات قابلة للبرمجة (PIC) مصممة للمعالجات الدقيقة Intel 8080 و Intel 8085. كان الجزء الأول هو 8259، بينما كان الجزء اللاحق 8259A متوافقًا مع المعالجات 8086 أو 8088. تجمع وحدة 8259 مصادر إدخال مقاطعات متعددة في مخرج مقاطعة واحد للمعالج الدقيق المضيف، مما يوسع مستويات المقاطعات المتاحة في النظام لتتجاوز المستوى أو المستويين الموجودين على شريحة المعالج. كانت وحدة 8259A هي وحدة التحكم في المقاطعات لحافلة ISA في أجهزة IBM PC و IBM PC AT الأصلية .
طُرحت شريحة 8259 كجزء من عائلة معالجات MCS 85 من إنتل عام 1976. أُدرجت شريحة 8259A في جهاز الكمبيوتر الشخصي الأصلي الذي طُرح عام 1981، واستمر استخدامها في جهاز PC/XT عند طرحه عام 1983. أُضيفت شريحة 8259A ثانية مع طرح جهاز PC/AT . تعايشت شريحة 8259 مع بنية إنتل APIC منذ طرحها في أجهزة الكمبيوتر الشخصية متعددة المعالجات المتناظرة . بدأت أجهزة الكمبيوتر الشخصية الحديثة بالاستغناء تدريجيًا عن شريحة 8259A لصالح بنية إنتل APIC. ومع ذلك، ورغم أنها لم تعد شريحة منفصلة، لا تزال واجهة 8259A مُتاحة عبر وحدة التحكم المركزية أو الجسر الجنوبي في اللوحات الأم الحديثة x86 . [ 1 ]
الوصف الوظيفي
تتضمن دبابيس الإشارة الرئيسية في معالج 8259 ما يلي: ثمانية خطوط إدخال لطلبات المقاطعة من IRQ0 إلى IRQ7، وخط إخراج لطلبات المقاطعة يُسمى INTR، وخط تأكيد المقاطعة يُسمى INTA، ومن D0 إلى D7 لنقل مستوى المقاطعة أو إزاحة المتجه. وتشمل التوصيلات الأخرى من CAS0 إلى CAS2 للتوصيل المتتالي بين معالجات 8259.
يمكن ربط ما يصل إلى ثمانية وحدات 8259 تابعة بوحدة 8259 رئيسية لتوفير ما يصل إلى 64 مقاطعة. يتم الربط عن طريق توصيل خط INT الخاص بوحدة 8259 تابعة بخط IRQ الخاص بوحدة 8259 رئيسية .
تدعم عمليات إنهاء المقاطعة (EOI) ثلاثة أنواع: إنهاء المقاطعة المحدد، وإنهاء المقاطعة غير المحدد، وإنهاء المقاطعة التلقائي. يحدد إنهاء المقاطعة المحدد مستوى مقاطعة النظام (IRQ) الذي يتم تأكيده في روتين خدمة المقاطعة (ISR). أما إنهاء المقاطعة غير المحدد فيعيد ضبط مستوى مقاطعة النظام في روتين خدمة المقاطعة. بينما يعيد إنهاء المقاطعة التلقائي ضبط مستوى مقاطعة النظام في روتين خدمة المقاطعة فور تأكيد المقاطعة.
يدعم المعالج 8259A أوضاع تشغيل مقاطعة الحافة والمستوى. كما يدعم أوضاع الأولوية الثابتة وأوضاع الأولوية الدوارة.
يمكن تهيئة المعالج 8259 للعمل مع المعالجين 8080/8085 أو 8086/8088. في المعالجين 8086/8088، يُرسل مُتحكم المقاطعات رقم مقاطعة على ناقل البيانات عند حدوث مقاطعة. أما دورة المقاطعة في المعالجين 8080/8085 فتُرسل ثلاثة بايتات على ناقل البيانات (تُقابل تعليمة CALL في مجموعة تعليمات المعالجين 8080/8085).
يوفر 8259A وظائف إضافية مقارنة بـ 8259 (وخاصة وضع التخزين المؤقت ووضع التشغيل بالمستوى) وهو متوافق معه بشكل أكبر.
اعتبارات البرمجة
نظام التشغيل MS-DOS ونظام التشغيل ويندوز

اللوحة الأم.]]
أدى برمجة جهاز 8259 بالتزامن مع نظامي التشغيل MS-DOS و Windows إلى ظهور عدد من المشكلات المربكة من أجل التوافق مع الإصدارات السابقة، والذي يمتد إلى جهاز IBM PC الأصلي لعام 1981.
- من المتوقع أن ترسل برامج تشغيل أجهزة MS-DOS إشارة نهاية تعريف غير محددة (EOI) إلى معالجات 8259 عند الانتهاء من صيانة أجهزتها. يمنع هذا استخدام أي من إشارات نهاية التعريف الأخرى الخاصة بمعالج 8259، ويستبعد التمييز بين مقاطعات الأجهزة التي يتم إعادة توجيهها من معالج 8259 الرئيسي إلى معالج 8259 التابع.
- بدأ استخدام مقاطعتي IRQ2 وIRQ9 مع إدخال معالج 8259 التابع في جهاز IBM PC/AT. يتم توصيل خرج INT الخاص بالمعالج التابع 8259 بمنفذ IR2 الخاص بالمعالج الرئيسي. تمت إعادة توجيه خط IRQ2 الخاص بناقل ISA، والذي كان متصلاً في الأصل بمنفذ IR2، إلى منفذ IR1 الخاص بالمعالج التابع. وبالتالي، يقوم خط IRQ2 القديم الآن بتوليد مقاطعة IRQ9 في وحدة المعالجة المركزية. ولضمان التوافق مع الإصدارات السابقة من برامج تشغيل أجهزة DOS التي لا تزال تستخدم IRQ2، يقوم نظام BIOS بتثبيت معالج لمقاطعة IRQ9، والذي بدوره يعيد توجيه المقاطعات إلى معالج IRQ2 الأصلي.
بالنسبة لأجهزة IBM PC المتوافقة ، يقوم نظام BIOS بربط طلبات المقاطعة الرئيسية 8259 (IRQ0–IRQ7) بالمقاطعات (INT08–INT0Fh). وعند وجودها، يتم ربط وحدة التحكم التابعة 8259 في جهاز IBM PC/AT بالمقاطعات (INT70–INT77h). وقد تم ذلك على الرغم من أن أول 32 متجه مقاطعة (INT00–INT1F) كانت محجوزة من قبل المعالج للاستثناءات الداخلية. هذا يعني أنه في الرقاقات اللاحقة، كان على معالجات المتجهات ذات الأرقام الأقل التمييز بين ثلاثة أسباب:
- الأخطاء والاستثناءات والفخاخ التي تحدث بشكل عرضي.
- المقاطعات الناتجة عن IRQ أو NMI، والتي قد تشمل مقاطعات زائفة.
- استدعاءات متعمدة من البرامج التي تنفذ تعليمات INT أو نقطة توقف أو تعليمات CALL/JMP غير المباشرة، كما يمكن استخدامها للتفاعل مع BIOS أو نظام التشغيل أو برامج تشغيل الأجهزة.
لهذا السبب، تقوم معظم أنظمة التشغيل التي لا تستخدم نظام الإدخال والإخراج الأساسي (BIOS) بضبط وحدة (وحدات) التحكم في المقاطعات لتجنب نطاق المتجهات المحجوزة تمامًا. في الوضع المحمي ، يمكن لنظام التشغيل تقييد استخدام تعليمات المقاطعات (INT) لمتجهات محددة فقط (على سبيل المثال، يعرض نظام لينكس المقاطعة 80h لاستدعاءات النظام)، وأي محاولة لاستخدام متجه غير مسموح به ستؤدي إلى ظهور خطأ في الحماية.
يُغني هذا عن بعض الحاجة إلى تحديد السبب في معالجات متجه المقاطعة، مع أن المقاطعات الزائفة ومشاركة IRQ قد تُعقّد الأمور. لحسن الحظ، يُمكن الاستعلام من معظم الأجهزة الطرفية عن IRQs المعلقة، وإذا لم يُعثر على مصدر، يُمكن التعامل مع المقاطعة على أنها زائفة أو تجاهلها تمامًا.
أنظمة تشغيل أخرى
بما أن معظم أنظمة التشغيل الأخرى تسمح بتغييرات في توقعات برامج تشغيل الأجهزة ، يمكن استخدام أوضاع تشغيل أخرى لمعالج 8259، مثل Auto-EOI. يُعد هذا الأمر بالغ الأهمية لأجهزة x86 الحديثة ، حيث قد يُستغرق وقت طويل في تأخير مساحة عناوين الإدخال/الإخراج عند التواصل مع معالجات 8259. كما يتيح ذلك إجراء عدد من التحسينات الأخرى في التزامن، مثل الأقسام الحرجة، في نظام x86 متعدد المعالجات مزود بمعالجات 8259.
أوضاع التشغيل بالحافة والمستوى
بما أن ناقل ISA لا يدعم المقاطعات المُفعّلة بالمستوى ، فلا يمكن استخدام وضع المقاطعات المُفعّلة بالمستوى للمقاطعات المتصلة بأجهزة ISA. هذا يعني أنه في أنظمة PC/XT وPC/AT والأنظمة المتوافقة، يجب برمجة المعالج 8259 لوضع المقاطعات المُفعّلة بالحافة . أما في أنظمة MCA، فتستخدم الأجهزة المقاطعات المُفعّلة بالمستوى، ووحدة التحكم في المقاطعات مُبرمجة مسبقًا للعمل دائمًا في وضع المقاطعات المُفعّلة بالمستوى. في أنظمة EISA وPCI الأحدث، تتحكم سجلات التحكم في الحافة/المستوى (ELCRs) في الوضع لكل خط IRQ، مما يجعل وضع المعالج 8259 غير ذي صلة فعليًا بهذه الأنظمة المزودة بناقل ISA. تتم برمجة سجل ELCR بواسطة BIOS عند بدء تشغيل النظام لضمان التشغيل الصحيح.
تقع سجلات ELCR في العنوانين 0x4d0 و0x4d1 ضمن نطاق عناوين الإدخال/الإخراج x86. يبلغ عرض كل سجل 8 بتات، حيث يتوافق كل بت مع مقاطعة IRQ من معالج 8259. عند ضبط بت، تكون المقاطعة في وضع التشغيل بالمستوى؛ وإلا، تكون في وضع التشغيل بالحافة.
مقاطعات زائفة
يقوم المعالج 8259 بتوليد مقاطعات زائفة استجابة لعدد من الشروط.
الحالة الأولى هي إلغاء تفعيل خط IRQ قبل تأكيده. قد يحدث هذا بسبب التشويش على خطوط IRQ. في وضع التشغيل بالحافة، يجب أن يُبقي التشويش الخط في حالة منخفضة لمدة 100 نانوثانية. عندما يقل التشويش، يُعيد مُقاوم السحب خط IRQ إلى حالة عالية، مما يُولّد مقاطعة خاطئة. في وضع التشغيل بالمستوى، قد يتسبب التشويش في مستوى إشارة عالٍ على خط INTR الخاص بالنظام. إذا أرسل النظام طلب تأكيد، فلن يكون لدى 8259 ما يُعالجه، وبالتالي يُرسل IRQ7 استجابةً لذلك. ستُؤدي هذه الحالة الأولى إلى توليد IRQ7 زائفة.
قد تحدث حالة مشابهة عندما لا تتم مزامنة إلغاء قناع 8259 وإلغاء تأكيد مدخل IRQ بشكل صحيح. في العديد من الأنظمة، يتم إلغاء تأكيد مدخل IRQ عن طريق عملية كتابة من وحدة الإدخال/الإخراج، ولا ينتظر المعالج حتى تصل عملية الكتابة إلى جهاز الإدخال/الإخراج. إذا استمر المعالج في إلغاء قناع IRQ الخاص بـ 8259 قبل إلغاء تأكيد مدخل IRQ، فسيعيد 8259 تأكيد INTR مرة أخرى. وبحلول الوقت الذي يتعرف فيه المعالج على هذا INTR ويصدر إشعارًا لقراءة IRQ من 8259، قد يكون مدخل IRQ قد تم إلغاء تأكيده، ويعيد 8259 إشارة IRQ7 زائفة.
أما الحالة الثانية، فهي أن يكون خط مقاطعة IRQ2 الخاص بالمعالج الرئيسي 8259 نشطًا عند مستوى عالٍ بينما تكون خطوط مقاطعة IRQ الخاصة بالمعالج التابع 8259 غير نشطة عند الحافة الهابطة لإشارة تأكيد المقاطعة. هذه الحالة الثانية ستولد إشارات IRQ15 زائفة، ولكنها نادرة الحدوث.
PC/XT و PC/AT
كان نظام PC/XT ISA يحتوي على وحدة تحكم 8259 واحدة، بينما احتوت أنظمة PC/AT والأنظمة اللاحقة على وحدتي تحكم 8259، رئيسية وتابعة. تمثل IRQ0 إلى IRQ7 خطوط المقاطعة الخاصة بوحدة التحكم الرئيسية 8259، بينما تمثل IRQ8 إلى IRQ15 خطوط المقاطعة الخاصة بوحدة التحكم التابعة 8259. تُشير الأرقام من IR0 إلى IR7 على دبابيس وحدة التحكم 8259 إلى أسماء خطوط ناقل ISA التي تتصل بها وحدات التحكم 8259.
المتغيرات
| رقم الموديل | تكنولوجيا | نطاق درجة الحرارة | طَرد | تاريخ الإصدار | السعر (بالدولار الأمريكي) [ القائمة 1 ] |
|---|---|---|---|---|---|
| ID8259 | من -40 درجة مئوية إلى +85 درجة مئوية [ 2 ] | مارس/أبريل 1979 [ 3 ] | 23.15 دولارًا | ||
| M8259 | جيش | مارس/أبريل 1979 [ 4 ] | 95.00 دولارًا | ||
| 82C59A [ 5 ] | CMOS | يوليو/أغسطس 1984 | |||
| 8259 | 28 دبوس PLCC [ القائمة 2 ] [ 6 ] |
انظر أيضاً
مراجع
- ↑ "ورقة بيانات إنتل" . www.datasheetcatalog.com . تم الاطلاع عليها بتاريخ 30 أبريل 2024 .
- ↑ شركة إنتل، "معالج 8086 متاح للبيئات الصناعية"، إصدار خاص من مجلة إنتل بريفيو: حلول 16 بت، مايو/يونيو 1980، الصفحة 29
- ↑ شركة إنتل، "مكونات الحواسيب الصغيرة: خط إنتاج جديد من الدرجة الصناعية يلبي الطلب على مكونات عالية الموثوقية للعمل في التطبيقات الصناعية."، معاينة إنتل، مارس/أبريل 1979، ص 11
- ↑ شركة إنتل، "المنتجات العسكرية: إنتل تواصل مسيرتها!"، معاينة إنتل، مارس/أبريل 1979، ص 19
- ↑ شركة إنتل، "خبر عاجل: إنتل ترخص أوكي على إصدار CMOS من عدة منتجات"، حلول، يوليو/أغسطس 1984، الصفحة 1.
- ↑ آشبورن، جيم؛ "التغليف المتقدم: القليل يُحدث فرقًا كبيرًا"، شركة إنتل، حلول، يناير/فبراير 1986، الصفحة 2
- فان جيلوي، فرانك. الحاسوب الشخصي غير الموثق . دار نشر إيه دبليو ديفيلوبرز، 1997. رقم ISBN 0-201-47950-8
- ماكجيفرن، جوزيف. تصميم أنظمة الحاسوب الشخصي المعتمدة على المقاطعات . دار أنابوكس للنشر، 1998. رقم ISBN 0-929392-50-7
- المرجع التقني لواجهة الأجهزة لنظام IBM الشخصي 2 - البنى . IBM، 1990. منشور IBM رقم 84F8933
روابط خارجية
- شرائح إنتل
- أجهزة الكمبيوتر الشخصية المتوافقة مع IBM
- دوائر متكاملة للإدخال/الإخراج
- المقاطعات
