وحدة تحكم متقدمة قابلة للبرمجة للمقاطعات
وحدة التحكم المتقدمة القابلة للبرمجة في المقاطعات ( APIC ) هي عائلة من وحدات التحكم القابلة للبرمجة في المقاطعات، طورتها شركة إنتل . وكما يوحي اسمها، فإن وحدة APIC أكثر تطورًا من وحدة التحكم القابلة للبرمجة في المقاطعات 8259 (PIC) من إنتل، مما يُمكّن بشكل خاص من بناء أنظمة متعددة المعالجات . وهي إحدى التصاميم المعمارية العديدة التي تهدف إلى حل مشكلات كفاءة توجيه المقاطعات في أنظمة الحواسيب متعددة المعالجات.
يُعدّ APIC تصميمًا معماريًا مُجزّأً، حيث يتضمن مُكوّنًا محليًا (LAPIC) مُدمجًا عادةً في المعالج نفسه، ووحدة APIC اختيارية للإدخال/الإخراج على ناقل النظام. كانت أول وحدة APIC هي 82489DX ، وهي شريحة منفصلة تعمل كوحدة APIC محلية ووحدة APIC للإدخال/الإخراج. مكّنت 82489DX من بناء أنظمة المعالجات المتعددة المتناظرة (SMP) باستخدام معالجات Intel 486 ومعالجات Pentium المبكرة ؛ فعلى سبيل المثال، استخدم نظام 486 SMP ثنائي الاتجاه المرجعي ثلاث شرائح 82489DX، اثنتان منها كوحدات APIC محلية وواحدة كوحدة APIC للإدخال/الإخراج. بدءًا من معالج P54C ، تم دمج وظيفة وحدة APIC المحلية في شريحة معالجات Intel. كانت أول وحدة APIC مُخصصة للإدخال/الإخراج هي Intel 82093AA، والتي صُممت لأنظمة PIIX3 .
ملخص
يتكون نظام Intel APIC من عنصرين: وحدة APIC المحلية (LAPIC) ووحدة APIC للإدخال/الإخراج . توجد وحدة LAPIC واحدة في كل معالج مركزي في النظام. في الإصدار الأول ( 82489DX )، كانت وحدة LAPIC عبارة عن دائرة منفصلة، على عكس تصميمها اللاحق المدمج في رقائق معالجات Intel. عادةً ما توجد وحدة APIC واحدة للإدخال/الإخراج لكل ناقل طرفي في النظام. في تصميمات النظام الأصلية، كانت وحدات LAPIC ووحدات APIC للإدخال/الإخراج متصلة عبر ناقل APIC مخصص. أما الأنظمة الأحدث فتستخدم ناقل النظام للتواصل بين جميع مكونات APIC.
تحتوي كل وحدة معالجة APIC، سواء كانت شريحة منفصلة أو مدمجة في وحدة المعالجة المركزية، على سجل إصدار يتضمن رقم إصدار مكون من أربعة بتات خاص بتنفيذها المحدد. على سبيل المثال، تحمل وحدة 82489DX رقم إصدار APIC 0، بينما تم تخصيص الإصدار 1 للجيل الأول من وحدات APIC المحلية المدمجة في معالجات Pentium 90 و100. [ 1 ] : 3-5
في الأنظمة التي تحتوي على متحكم 8259 PIC ، يمكن توصيل هذا المتحكم بمعالج LAPIC في معالج التمهيد (BSP) الخاص بالنظام، أو بأحد معالجات الإدخال/الإخراج APIC الخاصة بالنظام، أو كليهما. ومع ذلك، من الناحية المنطقية، لا يتم توصيل متحكم 8259 إلا مرة واحدة في أي وقت.
APIC المنفصل
شريحة Intel APIC من الجيل الأول، 82489DX، المصممة للاستخدام مع معالجات Intel 80486 ومعالجات Pentium المبكرة، هي في الواقع وحدة APIC خارجية محلية ووحدة إدخال/إخراج مدمجة في دائرة واحدة. يشير إليها معيار Intel MP 1.4 باسم "APIC منفصل" تمييزًا لها عن "APIC مدمج" الموجود في معظم معالجات Pentium. [ 1 ] : 1-4 تحتوي شريحة 82489DX على 16 خط مقاطعة؛ [ 2 ] كما أنها تتميز بإمكانية فقدان بعض مقاطعات ISA. [ 3 ]
في نظام 486 متعدد المعالجات، كان لا بد من إقران كل وحدة معالجة مركزية بشريحة 82489DX خاصة بها؛ بالإضافة إلى ذلك، كان لا بد من استخدام شريحة 82489DX إضافية كواجهة إدخال/إخراج APIC. لم تستطع شريحة 82489DX محاكاة شريحة 8259A (XT-PIC)، لذا كان لا بد من تضمينها كشرائح فعلية لضمان التوافق مع الإصدارات السابقة. [ 1 ] : 5-3 تم تغليف شريحة 82489DX في حزمة PQFP ذات 132 طرفًا . [ 2 ] وكانت متاحة بسعر 26 دولارًا أمريكيًا لكل 1000 وحدة عند الشراء بكميات كبيرة. [ 4 ]
وحدات التحكم في الوصول المحلية المتكاملة
تتولى وحدات معالجة الإشارات المحلية (LAPICs) إدارة جميع المقاطعات الخارجية لمعالج محدد في نظام SMP. كما أنها قادرة على استقبال وإنشاء مقاطعات بين المعالجات (IPIs) فيما بينها. قد تدعم وحدة LAPIC واحدة ما يصل إلى 224 متجه مقاطعة قابل للاستخدام من وحدة معالجة الإشارات للإدخال/الإخراج (I/O APIC). وتُحجز أرقام المتجهات من 0 إلى 31، من أصل 0 إلى 255، لمعالجة الاستثناءات بواسطة معالجات x86.
تحتوي جميع معالجات إنتل، بدءًا من بنية P5 الدقيقة ( P54C )، على وحدة معالجة رسومية محلية مدمجة. [ 5 ] [ 6 ] مع ذلك، إذا تم تعطيل وحدة المعالجة الرسومية المحلية في معالج P5، فلا يمكن إعادة تفعيلها برمجيًا؛ لم يعد هذا القيد موجودًا في معالجات P6 والمعالجات اللاحقة. [ 6 ]
مع طرح معالجات Pentium 4 HT و Pentium D ، أصبحت كل نواة من نوى وحدة المعالجة المركزية وكل خيط من خيوط وحدة المعالجة المركزية تحتوي على LAPIC مدمج.
لا يمكن استخدام ميزة المقاطعات المُشار إليها بالرسائل (MSI) في مواصفات PCI 2.2 والإصدارات الأحدث إلا بتفعيل وحدة APIC المحلية. [ 7 ] يُغني استخدام MSI عن الحاجة إلى وحدة APIC للإدخال/الإخراج. إضافةً إلى ذلك، يدعم وضع MSI ما يصل إلى 224 مقاطعة، ولا يُسمح بمشاركة IRQ. [ 8 ] : 10-11
مؤقت APIC
ومن المزايا الأخرى لوحدة التحكم APIC المحلية أنها توفر أيضًا مؤقتًا عالي الدقة (في حدود ميكروثانية واحدة أو أفضل) يمكن استخدامه في كل من وضع الفاصل الزمني ووضع التشغيل لمرة واحدة. [ 6 ]
واجه مؤقت APIC صعوبات في البداية. فقد انتقدت وثيقة من مايكروسوفت صدرت عام 2002 (والتي دعت إلى اعتماد مؤقت الأحداث عالي الدقة بدلاً منه) مؤقت LAPIC لضعف دقته، مشيرةً إلى أن شريحة الساعة قد تكون معيبة في بعض الأحيان. [ 9 ] ومع ذلك، يُستخدم مؤقت APIC، على سبيل المثال، في نظام التشغيل ويندوز 7 عند تفعيل خاصية تحليل الأداء ، وفي ويندوز 8 في جميع الحالات. (قبل أن يستحوذ ويندوز 8 على الحقوق الحصرية لهذا المؤقت، كان يُستخدم أيضًا في بعض البرامج مثل CPU-Z ). في نظام التشغيل مايكروسوفت ويندوز، لا يُعد مؤقت APIC موردًا قابلاً للمشاركة. [ 10 ]
تستخدم ميزة "النواة عديمة التوقيت" في نواة لينكس المقاطعات غير الدورية التي يوفرها مؤقت APIC . هذه الميزة اختيارية ولكنها افتراضية، وهي جديدة في الإصدار 2.6.18. عند تفعيلها على جهاز كمبيوتر مزود بمؤقت APIC، لا تستخدم النواة مؤقت الفاصل الزمني القابل للبرمجة 8253 لحفظ الوقت. [ 11 ] تشير وثيقة VMware إلى أن "البرنامج لا يملك طريقة موثوقة لتحديد تردده. عمومًا، الطريقة الوحيدة لتحديد تردد مؤقت APIC المحلي هي قياسه باستخدام مؤقت PIT أو CMOS، وهو ما يعطي نتيجة تقريبية فقط." [ 12 ]
وحدات الإدخال/الإخراج APICs
تحتوي وحدات APIC للإدخال/الإخراج على جدول إعادة توجيه، يُستخدم لتوجيه المقاطعات التي تتلقاها من ناقلات الأجهزة الطرفية إلى وحدة APIC محلية واحدة أو أكثر. كانت وحدات APIC المبكرة للإدخال/الإخراج (مثل 82489DX وSIO.A وPCEB/ESC) تدعم 16 خط مقاطعة فقط، بينما دعمت الوحدات اللاحقة، مثل 82093AA (شريحة منفصلة لـ PIIX3/PIIX4)، 24 خط مقاطعة. [ 8 ] : 10-11 كانت تُعبأ في حزمة PQFP ذات 64 طرفًا . [ 13 ] كانت 82093AA تُوصل عادةً بـ PIIX3 / PIIX4 وتستخدم وحدات PIC 8259 المدمجة القديمة. [ 13 ] دمجت وحدة APIC للإدخال/الإخراج في ICH1 . قد توفر وحدة APIC المدمجة للإدخال/الإخراج في الشرائح الحديثة أكثر من 24 خط مقاطعة. [ 14 ]
وفقًا لاختبار معياري أجرته شركة إنتل عام 2009 باستخدام نظام لينكس ، قلّل معالج الإدخال/الإخراج APIC زمن استجابة المقاطعات بمقدار ثلاثة أضعاف تقريبًا مقارنةً بمحاكاة 8259 (XT-PIC)، بينما قلّل استخدام MSI زمن الاستجابة بشكل أكبر، بمقدار سبعة أضعاف تقريبًا مقارنةً بخط الأساس XT-PIC. [ 8 ] : 19
المتغيرات
تم تقديم xAPIC مع Pentium 4 ، بينما x2APIC هو أحدث جيل من وحدة التحكم في المقاطعات القابلة للبرمجة من Intel، والتي تم تقديمها مع بنية Nehalem الدقيقة في نوفمبر 2008. [ 15 ] تعالج التحسينات الرئيسية لـ x2APIC عدد وحدات المعالجة المركزية المدعومة وأداء الواجهة.
يستخدم معالج x2APIC الآن 32 بتًا لعنونة وحدات المعالجة المركزية، مما يسمح بعنونة ما يصل إلى 2 ^32 - 1 وحدة معالجة مركزية باستخدام وضع الوجهة الفيزيائية. أما وضع الوجهة المنطقية فيعمل الآن بشكل مختلف ويُدخل مفهوم المجموعات؛ وباستخدام هذا الوضع، يمكن عنونة ما يصل إلى 2^ 20 - 16 معالجًا.
تُقلل الواجهة المُحسّنة من عدد عمليات الوصول إلى سجل APIC اللازمة لإرسال مقاطعات بين المعالجات (IPIs). وبفضل هذه الميزة، يُمكن لـ KVM محاكاة x2APIC للمعالجات القديمة التي لا تدعمها فعليًا، ويتم توفير هذا الدعم بدءًا من QEMU وصولًا إلى معالجات Conroe وحتى معالجات AMD Opteron من سلسلة G (التي لا يدعم أيٌّ منها x2APIC بشكلٍ أصلي). [ 16 ] [ 17 ]
APICv هو الاسم التجاري لشركة إنتل لدعم المحاكاة الافتراضية للأجهزة ، والذي يهدف إلى تقليل الحمل الزائد للمقاطعات في الأنظمة الافتراضية. تم تقديم APICv في سلسلة معالجات Ivy Bridge-EP ، والتي تُباع باسم Xeon E5-26xx v2 (أُطلقت في أواخر عام 2013) وباسم Xeon E5-46xx v2 (أُطلقت في أوائل عام 2014). [ 18 ] [ 19 ] أعلنت AMD عن تقنية مماثلة تُسمى AVIC ، [ 20 ] [ 21 ] وهي متوفرة في طرازات عائلة 15h ومعالجات 6Xh (Carrizo) والإصدارات الأحدث. [ 22 ]
مشاكل
توجد عدة عيوب معروفة في تطبيقات أنظمة APIC، لا سيما فيما يتعلق بكيفية توصيل المعالج 8254. قد لا تقوم أنظمة BIOS المعيبة بإعداد توجيه المقاطعات بشكل صحيح، أو قد توفر جداول ACPI وجداول مواصفات معالجات Intel المتعددة (MPS) غير صحيحة.
قد يكون APIC سببًا في تعطل النظام عندما لا يدعمه نظام التشغيل بشكل صحيح. في أنظمة التشغيل القديمة، كان من الضروري تعطيل وحدات الإدخال/الإخراج ووحدات APIC المحلية. مع أن هذا لم يعد ممكنًا الآن نظرًا لانتشار أنظمة المعالجات المتعددة المتناظرة والأنظمة متعددة النوى ، إلا أن الأخطاء في البرامج الثابتة وأنظمة التشغيل أصبحت نادرة الحدوث.
مسابقة
اقترحت شركتا AMD و Cyrix في وقت سابق بنية OpenPIC ذات غرض مشابه إلى حد ما، تدعم ما يصل إلى 32 معالجًا؛ [ 23 ] وقد حظيت بدعم مبدئي على الأقل من شركتي IBM و Compaq حوالي عام 1995. [ 24 ] مع ذلك، لم تُصدر أي لوحة أم x86 مزودة بـ OpenPIC. [ 25 ] بعد فشل OpenPIC في سوق x86، رخصت AMD تقنية APIC من Intel لمعالجاتها AMD Athlon والمعالجات اللاحقة.
مع ذلك، طورت شركة IBM وحدة التحكم في المقاطعات متعددة المعالجات (MPIC) استنادًا إلى مواصفات سجلات OpenPIC. [ 26 ] استُخدمت وحدة MPIC في تصميمات تعتمد على معالجات PowerPC ، بما في ذلك تصميمات IBM، على سبيل المثال في بعض أنظمة RS/6000 ، [ 27 ] وكذلك من قِبل شركة Apple، حتى في أجهزة Power Mac G5 . [ 28 ] [ 29 ]
انظر أيضاً
مراجع
- 1 2 3 "مواصفات المعالجات المتعددة، الإصدار 1.4" . إنتل. مايو 1997. مؤرشف من الأصل في 30 أكتوبر 2004.
- 1 2 بادري رام (2001). توصيل المعالجات الدقيقة المتقدمة . دار نشر تاتا ماكجرو هيل للتعليم. ص 314. ISBN 978-0-07-043448-6.
- ↑ "وصف لنظام الإدخال/الإخراج الفرعي APIC" . freebsd.org . تم الاطلاع عليه بتاريخ 14 مايو 2023 .
- ↑ شركة إنتل، "التركيز على منتج جديد: مُصنِّع المعدات الأصلية: وحدة تحكم المقاطعات المُحسَّنة لأنظمة التشغيل المتقدمة"، حلول الحواسيب الصغيرة، يناير/فبراير 1993، صفحة 21
- ↑ سكوت م. مولر (2011). ترقية وإصلاح أجهزة الكمبيوتر الشخصية ( الطبعة العشرون). دار نشر كيو. ص 242. ISBN 978-0-13-268218-3.
- 1 2 3 أوي والتر؛ فينسنت أوبرلي. "دعم مؤقت دقيق بالميكروثانية لنواة لينكس" (PDF) .
- ↑ "أنظمة المقاطعات الفرعية القائمة على معالجات APIC على أجهزة الكمبيوتر أحادية المعالج" . مركز تطوير أجهزة ويندوز . 7 يناير 2003. مؤرشف من الأصل في 26 أكتوبر 2012.
- 1 2 3 جيمس كولمان (يناير 2009). "تقليل زمن استجابة المقاطعات من خلال استخدام المقاطعات المُشار إليها بالرسائل" (ملف PDF) . إنتل. مؤرشف من الأصل (ملف PDF) في 19 يناير 2022.
- ↑ "إرشادات لتوفير دعم مؤقت الوسائط المتعددة" . مايكروسوفت . 2002-09-20. مؤرشف من الأصل في 2012-07-28.
- ↑ "ويندوز 8 ومؤقت APIC" . social.msdn.microsoft.com . مؤرشف من الأصل بتاريخ 22 فبراير 2014. تم الاطلاع عليه بتاريخ 14 مايو 2023 .
- ↑ "قاعدة معارف VMware" . kb.vmware.com . مؤرشف من الأصل بتاريخ 27-02-2017 . تم الاطلاع عليه بتاريخ 13-02-2014 .
- ↑ "ضبط الوقت في الأجهزة الافتراضية VMware (لـ VMware vSphere 5.0، وWorkstation 8.0، وFusion 4.0)" (ملف PDF) . صفحة 8. مؤرشف من النسخة الأصلية (ملف PDF) بتاريخ 26-06-2016.
- 1 2 "ورقة بيانات وحدة التحكم المتقدمة القابلة للبرمجة في المقاطعات (I/O APIC) من إنتل 82093AA" . مركز الموارد والتصميم للتطوير مع إنتل . مؤرشف من الأصل في 28 نوفمبر 2016.
- ↑ "ورقة بيانات وحدة التحكم في منصة عائلة شرائح Intel 400 Series - المجلد 2 من 2" (PDF) . Intel . مايو 2020.
- ↑ "تحسين الميزة الرئيسية لـ X2APIC" . ComputerBase .
- ↑ مارسيلو توساتي (22 يوليو 2013). "ردًا على: [ Qemu-devel ] [ سؤال ] لماذا يتم ضبط x2apic افتراضيًا بدون دعم المضيف (على معالج Nehalem)؟" qemu -devel (قائمة بريدية).
- ↑ إدواردو هابكوست (20 يناير 2014). " [ Qemu-devel ] [ PATCH ] target-i386: تفعيل x2apic افتراضيًا على طرازات المعالجات الأحدث" . qemu-devel (قائمة بريدية).
- ↑ جون ناكاجيما (2012). مراجعة الميزات غير المستخدمة والجديدة لتقنية المحاكاة الافتراضية للمقاطعات/APIC (ملف PDF) . مؤتمر لينكس للسباكين 2012. تم الاطلاع عليه بتاريخ 14 مايو 2023 .
- ↑ "اختبار أداء المحاكاة الافتراضية لـ APIC و Iozone* - برنامج Intel®" . software.intel.com .
- ↑ وي هوانغ. مقدمة عن وحدة التحكم المتقدمة في المقاطعات الافتراضية من AMD . قمة زين 2012.
- ↑ يورغ رودل (أغسطس 2012). الجيل التالي من تقنية المحاكاة الافتراضية للمقاطعات لـ KVM (ملف PDF) . مؤتمر لينكس بلامبر 2012. تم الاطلاع عليه بتاريخ 14 مايو 2023 .
- ↑ سورافي سوثيكولبانيت (18 سبتمبر 2016). " [ Xen-devel ] [ RFC PATCH 0/9 ] تقديم AMD SVM AVIC" . Xen-devel (قائمة بريدية).
- ↑ "تعريف OpenPIC من موسوعة مجلة PC Magazine" . Pcmag.com. 1994-12-01 . تم الاطلاع عليه بتاريخ 2025-09-24 .
- ↑ بروك كروثرز (20 مارس 1995). "AMD وCyrix تقدمان مواصفات SMP بديلة" . InfoWorld : 8. ISSN 0199-6649 .
- ↑ أندريه د. بالسا. "ملاحظة مرفقة بـ "قياس أداء لينكس: الجزء الثالث - تفسير نتائج قياس الأداء" ] تظهر في العدد 24 من مجلة لينكس جازيت، يناير 1998" .
- ↑ "وحدة تحكم المقاطعات للمعالجات المتعددة. كتاب البيانات" (ملف PDF) . شركة IBM. مؤرشف من النسخة الأصلية (ملف PDF) بتاريخ 23-02-2014.
- ↑ "نظام IBM RS/6000 الموزع الذي يعمل بنظام AIX الإصدار 4.3.1. أمن C2 المُقيّم من قِبل TCSEC" (ملف PDF) . مرفق تقييم Arca Systems TTAP. صفحة 29.
- ↑ سينغ، أميت (13 أكتوبر 2006). نظرة من الداخل على جهاز باور ماك ثنائي المعالج القائم على معالج G5 - عبر قاعدة بيانات informIT.
- ↑ "ملاحظة للمطورين حول جهاز Power Mac G5" . مطورو Apple . دعم المقاطعات.
للمزيد من القراءة
روابط خارجية
- مواصفات معمارية Intel 64 x2APIC (ملف PDF)
- يمكن العثور على مزيد من المعلومات حول بنية Intel x2APIC في أدلة مطوري البرامج الخاصة ببنيتي Intel 64 و IA-32.
- اللوحة الأم
- المقاطعات
- منتجات إنتل
- أجهزة الكمبيوتر الشخصية المتوافقة مع IBM
- معمارية X86
